PL / SQL不会打印到控制台(在SQLDeveloper中)

问题描述 投票:0回答:1

我正在编写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

脚本可按预期方式编译和运行,但不会打印到控制台。

console output oracle-sqldeveloper plsqldeveloper
1个回答
0
投票

您的代码具有误导性。

您在表上不能有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

© www.soinside.com 2019 - 2024. All rights reserved.