the pls error encountered oracle plsql pls-00103

oracle - encountered - error pls 00103



crear el paquete oracle encontrado PLS-00103: Encontró el símbolo "CREAR" (6)

Cuando tiene BEGIN, END, etc., está en PL / SQL, no en SQL.

Un bloque PL / SQL debe terminarse con una barra ("adelante") al principio de la línea. Esto le dice a Oracle que ha terminado con su bloque PL / SQL, por lo que compila ese bloque de texto.

Consulta SQL - terminada por punto y coma:

update orders set status = ''COMPLETE'' where order_id = 55255;

Bloque PL / SQL: comandos separados por punto y coma, el bloque se termina con una barra diagonal:

create or replace procedure mark_order_complete (completed_order_id in number) is begin update orders set status = ''COMPLETE'' where order_id = :completed_order_id; end mark_order_complete; /

Estoy escribiendo un paquete de Oracle usando el desarrollador de Oracle SQL. Recibí este error de compilación:

Error (7,1): PLS-00103: Encontró el símbolo "CREAR".

create or replace PACKAGE TestPackage AS FUNCTION beforePopulate RETURN BOOLEAN; FUNCTION afterPopulate RETURN BOOLEAN; END TestPackage; CREATE OR REPLACE PACKAGE BODY TestPackage AS FUNCTION beforePopulate RETURN BOOLEAN AS BEGIN DELETE FROM TEST_1; INSERT INTO TEST_1 SELECT * FROM TEST WHERE VALUE=300; COMMIT; RETURN TRUE; EXCEPTION WHEN OTHERS THEN RETURN FALSE; END; FUNCTION afterPopulate RETURN BOOLEAN AS BEGIN UPDATE TEST SET RESULT="completed" WHERE VALUE=300; COMMIT; RETURN TRUE; EXCEPTION WHEN OTHERS RETURN FALSE; END; END; END TestPackage;

Si agrego un / en la línea 6, el error se convirtió en:

Error (6,1): PLS-00103: Encontró el símbolo "/"

Cansé una implementación vacía como esta:

create or replace package package1 as END PACKAGE1; CREATE OR REPLACE package body package1 as end package1;

Tengo el mismo error.


Después de un par de horas de frustración logré hacer que esto funcionara. Tuve el problema exacto como lo hiciste tú.

La solución para mí fue ejecutarlo como un script, no en el código del paquete. Las barras inclinadas funcionan correctamente en la hoja de cálculo de SQL. Estoy adjuntando la diferencia, espero que te ayude!


Esto me funcionó usando Oracle SQL Developer:

create or replace PACKAGE TestPackage AS FUNCTION beforePopulate RETURN BOOLEAN; FUNCTION afterPopulate RETURN BOOLEAN; END TestPackage; / CREATE OR REPLACE PACKAGE BODY TestPackage AS FUNCTION beforePopulate RETURN BOOLEAN AS BEGIN DELETE FROM TESTE; INSERT INTO TESTE SELECT 1,1,1 FROM DUAL; COMMIT; RETURN TRUE; EXCEPTION WHEN OTHERS THEN RETURN FALSE; END; FUNCTION afterPopulate RETURN BOOLEAN AS BEGIN UPDATE TESTE SET TESTE=''OK'' WHERE TESTE=''''; COMMIT; RETURN TRUE; EXCEPTION WHEN OTHERS THEN RETURN FALSE; END; END TestPackage; /

No pude ejecutarlo hasta que creé las tablas y columnas que usaría.


Tuve este problema (Error (6,1): PLS-00103: Encontré el símbolo "/") cuando copié todo el código del paquete db (tanto los encabezados de procedimientos como las implementaciones) en sqldeveloper en user / packages / MY_PACKAGE_NAME / MY_PACKAGE_BODY en lugar de copiando encabezados (sin ''/'' al final) en usuario / paquetes / MY_PACKAGE_NAME e implementación (sin encabezados en la parte superior y sin ''/'' al final) en usuario / paquetes / MY_PACKAGE_NAME / MY_PACKAGE_BODY.


Yo tuve el mismo problema. Creo un paquete usando el menú principal de la izquierda y coloco la declaración y el cuerpo del paquete dentro del mismo archivo .sql. El problema se resuelve cuando copio todo el código, lo pego en la nueva hoja de trabajo y pongo "/" después de finalizar package_name (tanto después de la declaración del paquete como el cuerpo) y luego ejecuto la hoja de trabajo como un script.


ejecutar paquete y cuerpo del paquete por separado con F5