General
Source {ORACLE_HOME}/rdbms/admin/dbmsotpt.sql
First Available 7.3.4
Data Types TYPE chararr IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;
-- Note: was 255 bytes in 10gR1 and earlier

TYPE dbmsoutput_linesarray IS
VARRAY(2147483647) OF VARCHAR2(32767);

Dependencies SELECT name FROM dba_dependencies
WHERE referenced_name = 'DBMS_OUTPUT'
UNION
SELECT referenced_name FROM dba_dependencies
WHERE name = 'DBMS_OUTPUT';
Exceptions
Exception Name Error Code Reason
ORA-20000 ORU-10027 Buffer overflow, limit of <buf_limit>bytes
ORA-20000 ORU-10028 Line length overflow, limit is 32767 bytes per line
SQL*Plus SET SERVEROUTPUT ON in SQL*Plus is equivalent to:

dbms_output.enable(buffer_size => NULL);

 
DISABLE
Disable DBMS_OUTPUT and reset the buffer size to the default dbms_output.disable;
exec dbms_output.disable;
 
ENABLE
Enable DBMS_OUTPUT and set the buffer size. The buffer size can be between 1 and 1,000,000 dbms_output.enable(buffer_size IN INTEGER DEFAULT 20000);
exec dbms_output.enable(1000000);
 
GET_LINE
Returns a single line of buffered information dbms_output.get_line(line OUT VARCHAR2, status OUT INTEGER);
set serveroutput on

DECLARE
buffer VARCHAR2(100);
status INTEGER;
BEGIN
dbms_output.put_line('This is');
dbms_output.put_line('a test.');
dbms_output.get_line(buffer, status);
dbms_output.put_line('Buffer: ' || buffer);
dbms_output.put_line('Status: ' || TO_CHAR(status));
END;
/

 
GET_LINES
Retrieves an array of lines from the buffer

Overload 1

dbms_output.get_lines(lines OUT CHARARR, numlines IN OUT INTEGER);
set serveroutput on
DECLARE
outtab dbms_output.chararr;
fetchln INTEGER := 15;
BEGIN
outtab(1) := 'This is a test';
outtab(12) := 'of dbms_output.get_lines';

dbms_output.put_line('A: ' || outtab(1));
dbms_output.put_line('A: ' || outtab(12));

dbms_output.get_lines(outtab, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));
/*
FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || outtab(i));
END LOOP;
*/
END;
/
DECLARE
outtab dbms_output.chararr;
fetchln INTEGER := 15;
BEGIN
outtab(1) := 'This is a test';
outtab(12) := 'of dbms_output.get_lines';

dbms_output.put_line('A: ' || outtab(1));
dbms_output.put_line('A: ' || outtab(12));

dbms_output.get_lines(outtab, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));

FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || outtab(i));
END LOOP;
END;
/

Overload 2 dbms_output.get_lines(
lines OUT dbmsoutput_linesarray,
numlines IN OUT INTEGER);
set serveroutput on

BEGIN
dbms_output.put_line(lo(1));
END;
/
===========================================DECLARE lo dbmsoutput_linesarray :=dbmsoutput_linesarray(10); fetchln INTEGER := 15;
BEGIN lo(1) := 'ABC';
lo.extend;
lo(2) := 'DEF';
lo.extend;
lo(3) := 'GHI';
lo.extend;
lo(4) := 'JKL';
lo.extend;
lo(5) := 'MNO';
dbms_output.put_line('A: ' || lo(1));
dbms_output.put_line('A: ' || lo(2));
dbms_output.put_line('A: ' || lo(3));
dbms_output.put_line('A: ' || lo(4));
dbms_output.put_line('A: ' || lo(5));

dbms_output.get_lines(lo, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));
/*
FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || outtab(i));
END LOOP;
*/
END;
/
DECLARE lo dbmsoutput_linesarray := dbmsoutput_linesarray(10); fetchln INTEGER := 15;
BEGIN lo(1) := 'ABC';
lo.extend;
lo(2) := 'DEF';
lo.extend;
lo(3) := 'GHI';
lo.extend;
lo(4) := 'JKL';
lo.extend;
lo(5) := 'MNO';
dbms_output.put_line('A: ' || lo(1));
dbms_output.put_line('A: ' || lo(2));
dbms_output.put_line('A: ' || lo(3));
dbms_output.put_line('A: ' || lo(4));
dbms_output.put_line('A: ' || lo(5));

dbms_output.get_lines(lo, fetchln);
dbms_output.put_line(TO_CHAR(fetchln));

FOR i IN 1 .. fetchln LOOP
dbms_output.put_line('B: ' || lo(i));
END LOOP;
END;
/

 
NEW_LINE
Inserts an end-of-line marker dbms_output.new_line;
set serveroutput on

BEGIN
dbms_output.enable(9999999);
dbms_output.new_line();

FOR rec IN (SELECT table_name FROM user_tables)
LOOP
dbms_output.put_line (rec.table_name);
END LOOP;
dbms_output.new_line();
END;
/

 
PUT
Obsolete and no longer supported by Oracle
 
PUT_LINE
Output a literal dbms_output.put_line(a IN VARCHAR2);
set serveroutput on

BEGIN
dbms_output.put_line('Display a string literal');
END;
/

Output a variable set serveroutput on size 1000000 format wrapped

DECLARE
x VARCHAR2(20) := RPAD('Dan Morgan', 199, 'x')
BEGIN
dbms_output.put_line(x);
END;
/

 
 

关于dbms_output包的使用的更多相关文章

  1. Oracle存储过程详解(引用)+补充(转) dbms_output包 good

    执行存储过程时,execute和call的区别 EXEC is a sqlplus command that put its argument as an anonymous pl/sql block ...

  2. DBMS_OUTPUT包学习

    DBMS_OUTPUT包中的其他方法和函数的用法,所以这次特地来研究一下. 先简单的讲解一下这个包的所有procedure的含义及作用:  -----------------------     1. ...

  3. Oracle的dbms_output包的put()和put_line()的区别只是有没有回车换行吗?(转)

    答案是否 除了自动添加回车换行外,还有就是缓冲区最大容量的问题!! 无论如何设置serveroutput size,10g里 put() 最多只能输出 32767 个byte 而 put_line() ...

  4. Oracle学习笔记十四 内置程序包

    扩展数据库的功能 为 PL/SQL 提供对 SQL 功能的访问 用户 SYS 拥有所有程序包 是公有同义词 可以由任何用户访问 一些内置程序包 程序包名称 说明 STANDARD和DBMS_STAND ...

  5. PL/SQL之--包

    一.包 包是一组相关过程.函数.常量.变量.游标.异常等PL/SQL程序设计元素的组合.它类似于C++和Java中的类,其中变量相当于类中的成员变量,过程和函数相当于类中的方法.通过使用包,可以使开发 ...

  6. oracle系统包—-dbms_output用法

    dbms_output包主要用于调试pl/sql程序,或者在sql*plus命令中显示信息(displaying message)和报表,譬如我们可以写一个简单的匿名pl/sql程序块,而该块出于某种 ...

  7. oracle读写文件--利用utl_file包对磁盘文件的读写操作

    oracle读写文件--利用utl_file包对磁盘文件的读写操作 摘要: 用户提出一个需求,即ORACLE中的一个表存储了照片信息,字段类型为BLOB,要求能导出成文件形式. 本想写个C#程序来做, ...

  8. PL/SQL之包

    1.包的定义 一个包由两个独立的部分组成--包头和包体.给部分被单独地存放在数据字典中. .1定义包头 语法: CREATE [OR REPLACE] PACKAGE [schema.] packag ...

  9. oracle 存储过程,存储函数,包,

    http://heisetoufa.iteye.com/blog/366957 认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过 ...

随机推荐

  1. msp430入门学习23

    msp430的ADC(模数转换) msp430入门学习

  2. DNS域名服务器配置

    ========================DNS域名服务器===================== 1)bind安装: yum -y install bind* ............... ...

  3. Thinkphp5.0 的使用模型Model更新数据

    Thinkphp5.0 的使用模型Model更新数据 (1)使用update()方法进行更新数据 一.where条件写在更新数据中 (这种情况更新的数据,必须含主键) $res = User::upd ...

  4. 使用JavaMail通过QQ/126服务器服务发送邮件

    https://blog.csdn.net/yidragon88xx/article/details/53230310

  5. [bzoj1717][Usaco2006 Dec]Milk Patterns 产奶的模式_后缀数组_二分答案

    Milk Patterns 产奶的模式 bzoj-1717 Usaco-2006 Dec 题目大意:给定一个字符串,求最长的至少出现了$k$次的子串长度. 注释:$1\le n\le 2\cdot 1 ...

  6. C#中Stack&lt;T&gt;类的使用及部分成员函数的源代码分析

    Stack<T>类 Stack<T> 作为数组来实现. Stack<T> 的容量是 Stack<T> 能够包括的元素数. 当向 Stack<T&g ...

  7. Xcode中git的用法介绍与&quot;Please tell me who you are&quot;问题的解决方式

    我在之前多篇博客中解说了怎样使用命令行操作git,能够大大提高我们的工作效率.详细能够參考<Git学习札记><Git学习札记--进阶>等文章.事实上对于同一个工具,我们有不同的 ...

  8. 怎样托管你的项目到github上具体教程

    本文将具体介绍怎样托管你的项目到github上 转载请标明出处: http://blog.csdn.net/lxk_1993/article/details/50441442 本文出自:[lxk_19 ...

  9. 黑马day16 aptana插件的安装

    aptana: eclipse或者myeclipse中的javaScript,html,css的代码提示功能非常差...因此我们选择了这个框架. aptana的安装步骤: 1.须要下载aptana的插 ...

  10. mysql数据库批量高速插入

    近期在处理一批数据,须要从库中表里的字段进行处理然后导出到一个新表中.只是这个表的数据量有近500w条. 这数据量出现的的问题是须要处理的时间好长. 首先想到,一句一句的插入,大数据量处理时间好长,忽 ...