ユーザーが入力する挿入ステートメントを表示する方法を理解しようとしています。「挿入ステートメントを更新してください」というテキストが印刷された後に表示したい。オンラインでたくさんのことを読んだところ、「/」記号を入力し、このクエリを実行することで、Oracleで入力した前のコマンドを表示できることがわかりました 'SELECT * FROM gv$sql WHERE SQL_ID = IDENT_CURRENT('gv $sql')'. dbms_output.put_line(/) を使用し、単に t0_char('/'); を使用して、トリガーで execute immediately ステートメントを使用してみました。以下に示すように、クエリで。任意のヒント?
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);