我正在尝试创建一个将参数输入发送到表中的存储过程。当我尝试从 SQL 开发人员编译我的存储过程时,它运行良好,但我想在 Oracle EBS 12 中从并发运行此过程。
但是,这是错误消息:
原因:由于 ORA-06550,FDPSTP 失败:第 1 行,第 7 列: PLS-00201:必须声明标识符"RUN_THIS_THING" ORA-06550:第 1 行,第 7 列: PL/SQL:忽略语句 .
这是我的代码:
create or replace PROCEDURE RUN_THIS_THING
(errbuf out varchar2,retcode out varchar2, P_RUN_FROM IN NUMBER, P_RUN_TO IN NUMBER, P_USER IN VARCHAR2) IS
BEGIN
declare cursor c_header is
select
aia.party_id,
aia.INVOICE_ID,
aia.INVOICE_NUM,
AIA.VENDOR_ID,
AIA.INVOICE_CURRENCY_CODE,
aia.INVOICE_AMOUNT,
aia.DESCRIPTION,
aia.INVOICE_DATE,
aia.INVOICE_RECEIVED_DATE,
AIA.GL_DATE,
AIA.DOC_SEQUENCE_VALUE
from
AP.ap_invoices_all aiA
where
AIA.DOC_SEQUENCE_VALUE BETWEEN P_RUN_FROM AND P_RUN_TO;
h_rec c_header%rowtype;
begin
open c_header;
loop
fetch c_header into h_rec;
exit when c_header%notfound;
BEGIN
insert into RUN_TEMP
(
INVOICE_ID ,
LAST_UPDATE_DATE ,
LAST_UPDATED_BY ,
VENDOR_ID ,
PARTY_ID ,
INVOICE_NUM ,
TTDV_NUM ,
CURRENCY ,
INVOICE_AMOUNT ,
INVOICE_DATE ,
INVOICE_RECEIVED_DATE ,
GL_DATE ,
DESCRIPTION
)
values
(
h_rec.INVOICE_ID,
sysdate,
p_user,
h_rec.VENDOR_ID,
h_rec.party_id,
h_rec.INVOICE_NUM,
h_rec.DOC_SEQUENCE_VALUE,
h_rec.INVOICE_CURRENCY_CODE,
h_rec.INVOICE_AMOUNT,
h_rec.INVOICE_DATE,
h_rec.INVOICE_RECEIVED_DATE,
h_rec.GL_DATE ,
h_rec.DESCRIPTION
);
END;
end loop;
close c_header;
commit;
end;
END;
它失败了,看起来像过程没有编译,我已经尝试授予我的用户对该包的执行权限。它没有用。我还能看什么?还有什么原因导致这种情况?谢谢!
创建或替换RUN_THIS_THING的公共同义词RUN_THIS_THING;
请尝试此语句或根据需要进行更改。缺少同义词。