Su cliente DB Solo parece estar interpretando el primer punto y coma que ve como el final de la declaración, lo cual es razonable para SQL simple (DML o DDL) pero no para PL/SQL.
Puede ver eso en la imagen de registro que publicó; trata la función create function ... v_ids integer
parte como una declaración porque termina con el primer punto y coma:se compila pero con un error. Luego toma el siguiente fragmento, hasta el siguiente punto y coma, como una declaración separada:v_str varchar2(5000)
- y es el que obtiene el ORA-00900, ya que no es un SQL válido.
Entonces, en base a eso, no parece entender cómo tratar PL/SQL de manera diferente; pero puede cambiar su configuración para no tratar los puntos y comas como separadores de declaraciones, en general, lo que significa que necesitaría agregar GO después de create type
y create function
extractos, y cualquier otra consulta o llamada que realice. Esto sería similar a usar /
en todas partes en SQL*Plus o SQL Developer.
Puede ser más fácil usar el editor de procedimientos . Presumiblemente después de haber creado el tipo y la función desde el navegador de objetos .
O, por supuesto, use un cliente diferente...