dbms_output.put_line以不同的方式出现在SQL Developer和SQL Plus中(不执行和执行)

时间:2018-06-15 08:39:43

标签: oracle-sqldeveloper sqlplus execute dbms-output

SQL开发人员中有“执行设置”选项吗?

我使用dbms_output.put_line创建了一个触发器(并且'也设置了'serveroutput') - 我体验到SQL开发人员和SQLPlus的工作方式不同:

  • SQL开发人员:仅在exec(ute)命令

  • 之后显示消息'ddl event'
  • SQLplus:行立即显示

我的猜测是SQL开发人员不会执行执行,因此不会写出缓冲区。如何在SQL开发人员中设置它?

示例:当ddl事件发生时,触发器显示消息'ddl event':

SQL开发人员:

set serveroutput on;

create or replace trigger logtrigger
    after ddl
    on database
begin
    dbms_output.put_line ('ddl event');
end; /

create table a (x number);
create table b (x number);
create table c (x number);

exec

SQL开发人员脚本输出(三个消息'ddl event'仅在exec命令之后出现)

Table A created.

Table B created.

Table C created.

Usage: EXEC[UTE] statement
ddl event
ddl event
ddl event

SQL Plus:

SQL> set serveroutput on;
SQL> create table e (x number);

ddl event

Table created.

SQL> create table f (x number);

ddl event

Table created.

谢谢你

0 个答案:

没有答案