dbms_output 使用记录一二

os: centos 7.4
db: oracle 11.2.0.4

dbms_output 对于程序调试非常重要,经常需要输出执行的SQL语句或者变量

sqlplus 的 serveroutput 变量

默认 sqlplus 的 serveroutput 是关闭的,无法输出

SQL> show serveroutput;
serveroutput OFF

SQL> begin
  dbms_output.put_line('this is test!');
end;
/

serveroutput 的变量设置为 on,这是可以看到输出的效果

SQL> set serveroutput on;

SQL> show serveroutput;
serveroutput ON SIZE UNLIMITED FORMAT WORD_WRAPPED

SQL> begin
  dbms_output.put_line('this is test!');
end;
/

this is test!

PL/SQL Developer 的输出设置

使用 dbms_random 生成随即字符串

create table t0 (c0 varchar2(3000));
insert into t0 select dbms_random.string('p',3000) from dual connect by level <=5000;

begin
  for c_f in (
    select c0 from t0
  )
  loop
    dbms_output.put_line(c_f.c0);
  end loop;
end;

执行时会输出报错,如下
在这里插入图片描述
这时候需要设置下缓冲区大小

begin
  dbms_output.enable(buffer_size => null);
  for c_f in (
    select c0 from t0
  )
  loop
    dbms_output.put_line(c_f.c0);
  end loop;
end;

参考:

发布了721 篇原创文章 · 获赞 70 · 访问量 50万+

猜你喜欢

转载自blog.csdn.net/ctypyb2002/article/details/104165520