首页 > 技术文章 > Oracle内置存储过程之DBMS_OUTPUT

BlueStarWei 2018-07-14 10:14 原文

1.DBMS_OUTPUT

    1.1 作用: 调试PL/SQL程序

    1.2 相关函数:

命令 作用 备注
enable 在serveroutput on的情况下,用来使dbms_output生效(默认即打开)

启用serveroutput :  set serveroutput on

关闭serveroutput :  set serveroutput off

disable 在serveroutput on的情况下,用来使dbms_output失效
put 将内容写到内存,等到put_line/new_line时一起输出  
put_line(value) 输出字符(如果缓存中有内容,同时输出)  
new_line 换行(如果缓存中有内容,同时输出)  
get_line(value, status) 获取缓冲区的单行信息(返回的内容被存在value中,返回的状态会被存在status)

status=0 : 返回成功;

status=1 : 返回空(没有更多行)

get_lines(array, status) 以数组形式来获取缓冲区的多行信息


    1.3 示例: 

        1.3.1.1 put、new_line

begin
  dbms_output.put('a');  -- write in cache
  dbms_output.put('b');  -- write in cache
  dbms_output.new_line();  -- read out cache
  dbms_output.put('c'); -- write in cache
end;

       1.3.1.2 日志:(可在pl/sql的output窗口查看输出)

         1.3.2.1 put_line

begin
  dbms_output.put_line('Hello!Oracle'); -- read out charactor
  dbms_output.put('This ');  -- write in cache
  dbms_output.put('is ');     -- write in cache
  dbms_output.put_line('new line.');  -- read out charactor with cache
end;

        1.3.2.2 日志

        1.3.3.1 get_line

--create table
create table t(a number(1), b varchar2(10));

--insert data
declare 
 v_value varchar2(10);
 v_status number(1);
 v_count number(1) := 0;
begin
  dbms_output.put_line('a');
  dbms_output.put_line('b');
  while v_count <= 2 loop
    dbms_output.get_line(v_value,v_status);
    insert into t values(v_status,v_value);
    v_count := v_count + 1;
  end loop;
end;

--select data
SELECT * FROM t;

        1.3.3.2 日志:

 

推荐阅读