Seu cliente DB Solo parece estar interpretando o primeiro ponto e vírgula que vê como o final da instrução, o que é razoável para SQL simples (DML ou DDL), mas não para PL/SQL.
Você pode ver isso na imagem de log que você postou; trata a função
create function ... v_ids integer
parte como uma instrução porque termina com o primeiro ponto e vírgula - ele compila, mas com um erro. Em seguida, leva o próximo pedaço, até o próximo ponto e vírgula, como uma instrução separada - v_str varchar2(5000)
- e é isso que recebe o ORA-00900, pois não é SQL válido. De acordo com a documentação :
Então, com base nisso, parece não entender como tratar PL/SQL de maneira diferente; mas você pode alterar suas configurações para não tratar os pontos e vírgulas como separadores de instruções - em geral, o que significa que você precisa adicionar GO após o
create type
e create function
declarações e quaisquer outras consultas ou ligações que você fizer. Isso seria semelhante ao uso de /
em qualquer lugar no SQL*Plus ou SQL Developer. Pode ser mais fácil usar o editor de procedimentos . Presumivelmente, depois de criar o tipo e a função no navegador de objetos .
Ou, claro, use um cliente diferente...