当我尝试编译这个包时,我得到错误:PLS-00103:遇到以下其中一个时遇到符号“BEGIN”:end function pragma procedure子类型当前游标删除存在之前
有人可以帮帮我吗?
CREATE OR REPLACE PACKAGE PCK_TB_ESTADO
IS
PROCEDURE PRC_INSERE
(P_NM_REDE_FUNCIONARIO IN TB_FUNCIONARIO.NM_REDE_FUNCIONARIO%TYPE,
P_DS_ESTADO IN TB_ESTADO.DS_ESTADO%TYPE,
P_ID_UF IN TB_ESTADO.ID_UF%TYPE,
P_MENS OUT VARCHAR2)
BEGIN
CREATE SEQUENCE SEQ_ESTADO
MINVALUE 1
MAXVALUE 99
START WITH 1
INCREMENT BY 1;
INSERT INTO TB_ESTADO
VALUES (SEQ_ESTADO.NEXTVAL,P_DS_ESTADO,P_ID_UF,SYSDATE,P_NM_REDE_FUNCIONARIO);
COMMIT;
EXCEPTION
WHEN DUP_VAL_ON_INDEX THEN
ROLLBACK;
P_MENS := 'Você tentou executar um comando INSERT ou UPDATE que criou um valor duplicado em um campo restrito por um index único.';
WHEN OTHERS THEN
ROLLBACK;
P_MENS := 'Erro.';
END;
END PCK_TB_ESTADO;
1 回答
以下是问题:
包规范仅包含它应包含的过程/函数的签名 . procs / functions的代码进入Package Body
您的过程中不能直接使用DDL语句 . 但是,您可以使用
EXECUTE IMMEDIATE
执行DDL包体中的过程定义在
BEGIN
之前应该有IS/AS
关键字