Запустите процедуру plsql из параллельной в Oracle
Я пытаюсь создать хранимую процедуру, которая отправляет ввод параметров в таблицу. Когда я пытался скомпилировать свою процедуру хранения из SQL Developer, она работала хорошо, но я хочу запустить эту процедуру из Concurrent в Oracle EBS 12.
Тем не менее, это сообщение об ошибке:
Причина: сбой FDPSTP из-за ORA-06550: строка 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;
Похоже, что процедура не компилируется, и я уже пытался предоставить моему пользователю права на выполнение этого пакета. Это не работает. На что еще можно посмотреть? Что еще может быть причиной этого? Спасибо!
1 ответ
СОЗДАТЬ или ЗАМЕНИТЬ ПУБЛИЧНЫЙ СИНОНИМ RUN_THIS_THING ДЛЯ RUN_THIS_THING;
Попробуйте это утверждение или измените при необходимости. Синоним отсутствует.