Oracle
 sql >> Database >  >> RDS >> Oracle

ORA-00900:errore di istruzione SQL non valido? Cosa c'è che non va nel mio sql?

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.

Secondo la documentazione :

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...