Twój klient DB Solo wydaje się interpretować pierwszy średnik, który widzi jako koniec instrukcji, co jest rozsądne dla zwykłego SQL (DML lub DDL), ale nie dla PL/SQL.
Możesz to zobaczyć z opublikowanego obrazu dziennika; traktuje funkcję create function ... v_ids integer
część jako jedna instrukcja, ponieważ kończy się pierwszym średnikiem - kompiluje się, ale z błędem. Następnie przyjmuje następny fragment, aż do następnego średnika, jako oddzielną instrukcję — v_str varchar2(5000)
- i to jest to, co otrzymuje ORA-00900, ponieważ nie jest to prawidłowy SQL.
Na tej podstawie wydaje się, że nie rozumie, jak inaczej traktować PL/SQL; ale możesz zmienić ustawienia, aby nie traktować średników jako separatorów instrukcji - na całym świecie, co oznacza, że musisz dodać GO po obu create type
i create function
oświadczeń i wszelkich innych zapytań lub połączeń telefonicznych. Byłoby to podobne do używania /
wszędzie w SQL*Plus lub SQL Developer.
Łatwiejsze może być użycie edytora procedur . Przypuszczalnie po utworzeniu typu i funkcji z przeglądarki obiektów .
Lub oczywiście użyj innego klienta...