Oracle DBMS_OUTPUT包完全参考手册

来源:互联网 发布:淘宝账号修改用户名 编辑:程序博客网 时间:2024/06/05 03:09

一、DBMS_OUTPUT的用途
   1、调试代码,输出变量和表达式的值。
   2、调试代码,输出动态SQL拼接的语句,再运行输出的语句进行调试。
   3、生成报表等功能。
二、启用和停用DBMS_OUTPUT功能
   1、set serveroutput on,启用DBMS_OUTPUT。
   2、set serveroutput off,停用DBMS_OUTPUT。
三、设置DBMS_OUTPUT缓冲区大小
   1、默认值是20000字节
   2、设置本作用范围使用 DBMS_OUTPUT.ENABLE(【新的缓冲区大小】)。
   3、设置本会话范围使用 set serveroutput on size 【新的缓冲区大小】。
 
四、DBMS_OUTPUT参考
     DBMS_OUTPUT.CHARARR: 作为GET_LINES的参数lines的类型。
     DBMS_OUTPUT.ENABLE: 在当前作用域启用DBMS_OUTPUT,并可修改缓冲区大小。
     DBMS_OUTPUT.DISABLE: 在当前作用域停用DBMS_OUTPUT。
     DBMS_OUTPUT.PUT: 向缓冲区输入文本,不输出。
     DBMS_OUTPUT.PUT_LINE: 向缓冲区输入文本和一个换行符,将缓冲区中的所有文本输出,之后清空换行符。
     DBMS_OUTPUT.NEW_LINE: 向缓冲区一个换行符,将缓冲区中的所有文本输出,之后清空换行符。
     DBMS_OUTPUT.GET_LINE: status:0=调用成功,1=没有更多行 将缓冲区中的第一行文本提取到line,并将缓冲区清空。
     DBMS_OUTPUT.GET_LINES: 将缓冲区中从第一行开始的numlines行文本提取到lines,并将缓冲区清空。
 

其实默认情况下,SQL Developer 内是没有开启”DBMS OUTPUT“的,我们需要通过配置来开启,
1、enable:在serveroutput on的情况下,用来使dbms_output生效(默认即打开)
2、disable:在serveroutput on的情况下,用来使dbms_output失效
3、put:将内容写到内存,等到put_line时一起输出
4、put_line:不用多说了,输出字符
5、new_line:作为一行的结束,可以理解为写入buffer时的换行符
6、get_line(value, index):获取缓冲区的单行信息
7、get_lines(array, index):以数组形式来获取缓冲区的多行信息

需要注意以下几点:
1、set serveroutput on:如果要在sqlplus中看到dbms_output的输出,则必须设置该参数值为on
2、每行能容纳的最大值是32767bytes
3、buffer的默认值是20000bytes,可设置的最小值为2000bytes,最大值为1000000bytes
   dbms_output.enable(50000);

例子:
set serveroutput on;
begin
   dbms_output.put('a'); --写入buffer但不输出
   dbms_output.put('b'); --写入buffer但不输出
   dbms_output.new_line; --回车(换行),输出                             
   dbms_output.put_line('hello world!'); --输出并换行
   dbms_output.put('d'); --写入buffer但不输出
end;                                                    

执行运行结果:
ab
hello world!












原创粉丝点击