Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle PL/SQL不打印到控制台(在SQLDeveloper中)_Oracle_Oracle Sqldeveloper - Fatal编程技术网

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

Oracle PL/SQL不打印到控制台(在SQLDeveloper中),oracle,oracle-sqldeveloper,Oracle,Oracle Sqldeveloper,我正在编写PL/SQL触发器(而不是类型)。我试图在触发器中打印到控制台,但它不可见 脚本如下所示: 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 do

我正在编写PL/SQL触发器(而不是类型)。我试图在触发器中打印到控制台,但它不可见

脚本如下所示:

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;
我一直在堆栈中搜索,但没有任何结果。 我已经打开了SERVEROUTPUT,并且还尝试打开View->Dbms Output


脚本按预期编译和工作,但不会打印到控制台。

您的代码有误导性

您不能在表上使用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;
如果我在SQLDeveloper中以脚本的形式运行它-


打开serveroutput并运行insert语句。正如我在说明中提到的,它已打开。Insert工作正常,但不会打印到控制台。非常重要的是,您必须准确地共享您正在执行的操作。请看下面我的答案。谢谢!它起作用了。你说得对,我不是在桌子上做的,而是一个视图。当我将其作为脚本运行时,它会工作,而不是单独运行。@DamDev我们假设您知道使用异常将消息传递给应用程序/用户,而不是dbms_输出。。。