在 Oracle 上运行并发 plsql 过程



我正在尝试创建一个将参数输入发送到表中的存储过程。当我尝试从 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;

请尝试此语句或根据需要进行更改。缺少同义词。

最新更新