DBMS_OUTPUT 包--语法
1、enable:在serveroutput on的情况下,用来使dbms_output生效(默认即打开)
 说明:该过程用于激活本包,如果没有被激活,将无法调用本包的其它其余过程和函数。
 当调用该过程,缓冲区最大尺寸为1000000字节,最小为2000字节,默认为20000字节。
 注意:如果在SQL*PLUS中使用SERVEROUTPUT选项,则没有必要使用该过程。
 语法:DBMS_OUTPUT.ENABLE(buffer_size in integer default 20000);
2、disable:在serveroutput on的情况下,用来使dbms_output失效
     说明:该过程用于禁止本包,并清除缓冲区的内容。当本包被禁止,将无法调用本包的其它其余过程和函数。
 注意:如果在SQL*PLUS中使用SERVEROUTPUT选项,则没有必要使用该过程。
 语法:DBMS_OUTPUT.DISABLE;
3、put:put_line:
     说明:过程put_line用于将一个完整行的信息写入到缓冲区中,会自动在行的尾部追加行结束符;
 过程put则用地分块建立行信息,需要换行需要使用过程new_line追加行结束符。
 语法:dbms_output.put(item in number\varchar2\date);dbms_output.put_line(item in number\varchar2\date);
4、new_line:作为一行的结束,可以理解为写入buffer时的换行符
     说明:该过程用于在行的尾部追加行结束符。
 语法:dbms_output.new_line;
5、get_line:get_lines:get_line之后会将buffer清空
     说明:过程get_line用于取得缓冲区的单行信息,get_lins用于取得缓冲区的多行信息。
 语法:dbms_output.get_line(line out varchar2,status out integer);
 dbms_output.get_lines(lines out chararr,numlines in out integer);
 其中line用于取得缓冲区的单行信息(最大255字节),status用于返回过程执行是否成功,0成功1表示没有行;
 lines用于取得缓冲区的多行信息,numlines指定要检索的行数,并返回实际检索的行数。
     需要注意以下几点:
 -----------------------
     1、set serveroutput on:如果要在sqlplus中看到dbms_output的输出,则必须设置该参数值为on
     2、每行能容纳的最大值是32767bytes
     3、buffer的默认值是20000bytes,可设置的最小值为2000bytes,最大值为1000000bytes
1.set serveroutput为OFF时,dbms_output无输出
 BYS@ bys3>show serveroutput
 serveroutput OFF
 BYS@ bys3> begin
   2      dbms_output.put_line('hello world!');     
   3      dbms_output.put('bys'); 
   4      dbms_output.new_line; 
   5  end;
   6  /
 PL/SQL procedure successfully completed.
 #############################
2.set serveroutput为ON时,测试put_line,put,new_line
 BYS@ bys3>set serveroutput on
 BYS@ bys3>show serveroutput
 BYS@ bys3> begin
   2      dbms_output.put_line('hello world!');  --直接输出hello world!
   3      dbms_output.put('bys');
   4      dbms_output.put('good');
   5      
dbms_output.new_line;   --输出buffer中的,bys good在同一行。
   6      end;
   7      /
 hello world!
 bysgood
 PL/SQL procedure successfully completed.
 BYS@ bys3> begin
   2      dbms_output.put_line('hello world!');  
   3      dbms_output.put('bys');
   4     
 dbms_output.new_line;        --多增加一个new_line,相当于增加换行符--与上一语句相比,输入中bys和good在不同行。
   5      dbms_output.put('good');
   6      dbms_output.new_line;        
   7      end;
   8      /
 hello world!
 bys
 good
 PL/SQL procedure successfully completed.
 ##################################################################################
3.测试get_line的使用--get_linesi不知道怎么实验。。
 语句:
 var line varchar2(100);
 var status number;
  begin
     dbms_output.put_line('hello world!');  
     dbms_output.put('bys');
     dbms_output.new_line;     
     dbms_output.put('good');
     dbms_output.new_line;
     dbms_output.get_line(:line,:status);        
     end;
 BYS@ bys3>var line varchar2(100);
 BYS@ bys3>var status number;
 BYS@ bys3> begin
   2      dbms_output.put_line('hello world!');  
   3      dbms_output.put('bys');
   4      dbms_output.new_line;     
   5      dbms_output.put('good');
   6      dbms_output.new_line;
    
 dbms_output.get_line(:line,:status);        
     end;
   9      /
bys
 good
 PL/SQL procedure successfully completed.









