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