Вашият DB Solo клиент изглежда интерпретира първата точка и запетая, която вижда, като край на израза, което е разумно за обикновен SQL (DML или DDL), но не и за PL/SQL.
Можете да видите това от изображението на дневника, което сте публикували; третира функцията create function ... v_ids integer
част като един оператор, защото завършва с първата точка и запетая - компилира се, но с грешка. След това приема следващата част, до следващата точка и запетая, като отделен израз - v_str varchar2(5000)
- и това е, което получава ORA-00900, тъй като не е валиден SQL.
Така че въз основа на това изглежда не разбира как да третира PL/SQL по различен начин; но можете да промените настройките си така, че точката и запетая да не се третират като разделители на изрази - навсякъде, което означава, че ще трябва да добавите GO след двата create type
и create function
извлечения и всякакви други запитвания или обаждания, които правите. Това би било подобно на използването на /
навсякъде в SQL*Plus или SQL Developer.
Може да е по-лесно да използвате редактора на процедури . Вероятно след като сте създали типа и функцията от браузера на обекти .
Или, разбира се, използвайте различен клиент...