Мне сложно понять, как реализовать триггер before insert
с помощью курсора, который будет сравнивать номер вставки с max value
таблицы 1 столбцов (NUM)
, а затем распечатать соответствующее сообщение. Любая помощь будет принята с благодарностью.Создать триггер с помощью курсора
create or replace trigger MAXSOME
before insert on SOMENUMBERS for each row
declare
cursor pointer is
select max(NUM) from SOMENUMBERS;
x number;
begin
x := :new.NUM;
if x > pointer.num then
dbms_output.put_line('The new number ' || x || ' is greater than the greatest number in the table.');
elsif x := pointer then
dbms_output.put_line('The new number ' || x || ' is the same as the greatest number in the table.');
else
dbms_output.put_line(pointer.num || ' is still the largest number in the table.');
end if;
end;
/
Мне было бы интересно узнать прецедент для такого запроса. В любом случае вы не можете выполнить эту операцию против таблицы, триггер которой определяется без использования pragma_autonomous_transaction http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/autotransaction_pragma.htm – knuckles
Спасибо за ваши ответы. Это для заданий, данных в школе, чтобы использовать прецедент для применения знаний? – jbl
В этом конкретном примере он просит использовать явный курсор. – jbl