我试图弄清楚如何显示用户输入的插入语句。我希望它在“请更新插入语句”文本打印后显示。通过在线阅读大量内容,我发现您可以通过输入“/”符号以及运行此查询 'SELECT * FROM gv$sql WHERE SQL_ID = IDENT_CURRENT('gv $sql')'。我尝试在触发器中使用立即执行语句,使用 dbms_output.put_line(/),并简单地使用 t0_char('/'); 在查询中,如下所示。有小费吗?
set serveroutput on
CREATE or REPLACE trigger before_insert_t
before insert on reservations
for each row
DECLARE
rooms_remaining number(5,2);
BEGIN
select roooms_rem into rooms_remaining from reservations where roomno=:new.roomno;
if rooms_remaining = 0 then
dbms_output.put_line('Insertion now allowed because room ' || :new.roomno || ' is booked!' );
dbms_output.put_line('Please update the insert statement');
-- to_char('/');
dbms_output.put_line('insert into reservations values ' || :new.roomno );
-- EXECUTE IMMEDIATE sql_stmt;
end if;
END;
/
show errors
insert into reservations values (99,9);