Кажется, это должно быть легко, но синтаксис ускользает от меня. Я пытаюсь обновить существующую строку - первое, что я обнаружил, это «Новое». Тогда я хочу, чтобы вернуть разделители строки, имеющую ключ и 2 других значения:Процедура Oracle для обновления строки и возврата ее ключа?
create or replace procedure usp_direct_print_task_deque
(
taskNa in char
,environmentCd in char
) as
begin
declare rowkey number;
select '~' || rowversion || '~' || target_document || '~' || target_printer
as delimited_data
, rowversion
from AFD1.bt_direct_print_tasks
where environment_cd = environmentCd
and task_na = taskNa
and task_status = 'new'
and rownum = 1;
update bt_direct_print_tasks
set taskStatus = 'processing'
where rowversion = rowkey;
return delimited_data;
end usp_direct_print_task_deque;
Вы получаете синтаксическую ошибку? Не могли бы вы разместить его, если хотите? – Prashant
где идет rowkey? – cableload
Хорошая находка! Я удалил «объявить номер строки строки»; заявление. Rowkey - это rowversion. Я переименовал его только для того, чтобы дать понять, что это использует синтетический ключ. –