Uw DB Solo-client lijkt de eerste puntkomma die hij ziet als het einde van de instructie te interpreteren, wat redelijk is voor gewone SQL (DML of DDL) maar niet voor PL/SQL.
Je kunt dat zien aan de logafbeelding die je hebt gepost; het behandelt de create function ... v_ids integer
deel als één statement omdat dat eindigt met de eerste puntkomma - het compileert maar met een fout. Dan duurt het volgende stuk, tot aan de volgende puntkomma, als een afzonderlijke instructie - v_str varchar2(5000)
- en het is datgene dat de ORA-00900 krijgt, aangezien het geen geldige SQL is.
Dus op basis daarvan lijkt het niet te begrijpen hoe PL/SQL anders moet worden behandeld; maar u kunt uw instellingen wijzigen om de puntkomma's niet als scheidingstekens voor instructies te behandelen - over de hele linie, wat betekent dat u GO moet toevoegen na zowel het create type
en create function
verklaringen en alle andere vragen of oproepen die u plaatst. Dit zou vergelijkbaar zijn met het gebruik van /
overal in SQL*Plus of SQL Developer.
Het kan gemakkelijker zijn om de procedure-editor te gebruiken . Vermoedelijk nadat u het type en de functie van de objectbrowser hebt gemaakt .
Of gebruik natuurlijk een andere client...