Вставить запрос, не выполняющийся из блока - PullRequest
0 голосов
/ 27 апреля 2020

Я создал процедуру в oracle pl / sql.

. Он состоит из запроса на вставку, запрос на вставку, если процедура выполняется извне, работает нормально, но как только я запускаю процедура с запросом вставки, процедура выполнена успешно, но вставленная строка не отражается в таблице.

create or replace PROCEDURE DEMO_PROC

(

step11 NVARCHAR2,
v_name NVARCHAR2
)
AS

BEGIN

Insert Into table123
(Vname, decision, Decision_Reason, Decision_Date, 
stepN)
Select Distinct Vname,decision_Reason,
Decision_Date, stepN From demoTest123_history
Where  Vname= v_name And QUEUE_NAME=step11 
ORDER BY DECISION_DATE;

commit;

END;

1 Ответ

0 голосов
/ 27 апреля 2020

Где Vname = v_name и QUEUE_NAME = step11

Вы не присвоили никакое значение переменным, поэтому запрос ничего не возвращает. Либо присвойте значение в блоке, либо передайте его как параметр IN, а затем передайте значение во время выполнения процедуры:

EXECUTE DEMO_PROC(v_name ==> 'value', queue_name ==> 'value')

Кроме того, использование оператора ORDER BY в INSERT INTO..SELECT не имеет смысла, так как строки не хранятся в каком-либо определенном порядке. Удалите ЗАКАЗАТЬ ПО.

...