我收到此错误:
ORA-06550:第1行,第25列:PLS-00302:必须声明组件PA_EXCEPTION_LIST_UPDATE:第1行,第7行:PL / SQL:忽略语句。
我无法弄清楚我做错了什么。
PROCEDURE Pa_exception_list_update (p_ceid collection_entities.ceid%TYPE,
p_idusr users.idusr%TYPE
)
IS
v_idusr users.idusr%TYPE;
v_ceid collection_entities.ceid%TYPE;
BEGIN
INSERT INTO pa_exception_list(pa_exception_list_id,
ceid,
creation_date,
created_by)
VALUES(pa_exception_list_seq.nextval, p_ceid, SYSDATE, p_idusr);
END Pa_exception_list_update;
答案 0 :(得分:2)
看起来你在声明它之前调用了这个程序。
看看这个例子。 程序A调用程序B.但是那时B是未知的。
create or replace package test is
begin
end test;
create or replace package body test is
procedure a
is
begin
b;
end;
procedure b is
begin
-- do someting
end;
end test;
解。更改程序包中的过程顺序或将过程放在程序包规范中。
create or replace package test is
begin
procedure b;
end test;
create or replace package body test is
procedure a
is
begin
b;
end;
procedure b is
begin
-- do someting
end;
end test;
答案 1 :(得分:0)
根据错误消息,错误出现在第1行。
如果这是一个独立的程序,您必须写为create or replace procedure Pa_exception_list_update ...
如果这是PL / SQL包的一部分,那么你必须像
一样写CREATE OR REPLACE PACKAGE BODY <package name> AS
procedure Pa_exception_list_update ...
答案 2 :(得分:0)
我认为你在宣布时遗漏了一些东西。
p_ceid IN collection_entities.ceid%TYPE, p_idusr IN users.idusr%TYPE
答案 3 :(得分:0)
我也遇到了同样的问题。 检查后我发现,我调用的程序在包中不存在!。 后来改了程序名就成功了。