PL / SQL не печатает на консоль (в SQLDeveloper) - PullRequest
0 голосов
/ 26 октября 2019

Я пишу триггер PL / SQL (типа INSTEAD OF). Я пытаюсь распечатать на консоли в триггере, но он не виден.

Сценарий выглядит так:

SET SERVEROUTPUT ON;

CREATE OR REPLACE TRIGGER MYTRIGG
INSTEAD OF INSERT ON MYTABLE 
FOR EACH ROW
DECLARE
    --My varables...
BEGIN
    --Some statements

    DBMS_OUTPUT.PUT_LINE('Error! Deptno does not exist!');

    --Rest of script
END;

Я искал в стеке, и ничего не работает. У меня установлено SET SERVEROUTPUT ON, и я также попытался открыть View -> Dbms Output

Скрипт компилируется и работает как положено, но не выводится на консоль.

1 Ответ

1 голос
/ 26 октября 2019

Ваш код вводит в заблуждение.

У вас не может быть триггера INSTEAD OF для таблицы.

Вот некоторый рабочий код.

drop table mytable;
drop view mytable_view;
create table mytable (a integer);
create view mytable_view as select * from mytable;

SET SERVEROUTPUT ON;

CREATE OR REPLACE TRIGGER MYTRIGG
INSTEAD OF INSERT ON MYTABLE_view 
FOR EACH ROW
DECLARE
x integer;

BEGIN
    --Some statements

    DBMS_OUTPUT.PUT_LINE('Error! Deptno does not exist!');


    --Rest of script
END;
/

insert into mytable_view values (1);

commit;

И если язапустить это как скрипт в SQL Developer -

enter image description here

...