Il tuo client DB Solo sembra interpretare il primo punto e virgola che vede come la fine dell'istruzione, il che è ragionevole per SQL semplice (DML o DDL) ma non per PL/SQL.
Puoi vederlo dall'immagine del registro che hai pubblicato; tratta la create function ... v_ids integer
parte come un'unica istruzione perché termina con il primo punto e virgola:viene compilata ma con un errore. Quindi prende il pezzo successivo, fino al punto e virgola successivo, come istruzione separata - v_str varchar2(5000)
- ed è quello che ottiene l'ORA-00900, poiché non è SQL valido.
Quindi, sulla base di ciò, non sembra capire come trattare PL/SQL in modo diverso; ma puoi modificare le tue impostazioni per non trattare i punti e virgola come separatori di istruzioni - su tutta la linea, il che significa che dovresti aggiungere GO dopo sia il create type
e create function
dichiarazioni e qualsiasi altra domanda o chiamata effettuata. Sarebbe simile all'utilizzo di /
ovunque in SQL*Plus o SQL Developer.
Potrebbe essere più semplice utilizzare l'editor di procedure . Presumibilmente dopo aver creato il tipo e la funzione da il browser degli oggetti .
O, ovviamente, usa un client diverso...