`
jslfl
  • 浏览: 323795 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

oracle - dbms_output

阅读更多
1、如果dbms_output.put_line的内容不能显示,需要在命令行中先敲入set serveroutput on;只要敲一遍就好,之后dbms_output.put_line的内容就能显示出来了;

2、dbms_output.put_line每行只能显示255个字符,超过了就会报错,报错内容如下

      ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line

解决这个问题的方法如下:

declare

    v_result Varchar2(1000);--这是需要打印出结果的字符串

    v_pos Number := 1;--用来记录v_result每行开始字符的位置



WHILE v_pos<= LENGTH(v_result) LOOP

            DBMS_OUTPUT.PUT_LINE(SUBSTR(v_result, v_pos, 200));

            v_pos:= v_pos+ 200;

       END LOOP;

这样就能打印超过255长度的字符串,超过200长度的自动换行打印出来

begin

DBMS_OUTPUT.put( "put======= ");--不换行

DBMS_OUTPUT.put( "put======= ");--不换行

DBMS_OUTPUT.put_line( "putline====== ");--换行

DBMS_OUTPUT.put_line( "putline====== ");--换行

DBMS_OUTPUT.put_line( "putline====== ");--换行

end;

结果:

put=======put=======putline======

putline======

putline======


DECLARE
abc   number;
CURSOR   cur   IS   SELECT   1   from   dual;

BEGIN
DBMS_OUTPUT.PUT_LINE( 'cursor   opened ');
open   cur;

LOOP
fetch   cur   into   abc;
DBMS_OUTPUT.PUT_LINE( 'one   data ');
exit   when   cur%notFound;
END   LOOP;
close   cur;
end;



要使用DBMS_OUTPUT,必须先
SQL> set serveroutput on

dbms_output.put_line输出的记录太多的话,会出现缓冲区的溢出:
ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
ORA-06512: 在"SYS.DBMS_OUTPUT", line 35
ORA-06512: 在"SYS.DBMS_OUTPUT", line 198
ORA-06512: 在"SYS.DBMS_OUTPUT", line 139
ORA-06512: 在line 9

解决方法如下:
(1) 用dbms_output.enable( )设定长度.
DBMS_OUTPUT.ENABLE (buffer_size IN INTEGER DEFAULT 20000);
(注:该方法按如上设置没成功,直接DBMS_OUTPUT.ENABLE (20000);则成功执行)

(2) 也可以SET SERVEROUTPUT ON SIZE 5000

其中(1)方法仅对当次设定有效,删除后仍会提示错误,而(2)方法是修改配置信息,如果不关闭Sql*plus的该设定仍然存在。


原文:http://blog.csdn.net/zhangxs_3/article/details/4697160
分享到:
评论

相关推荐

    DBMS_SQL的使用

    ### Oracle DBMS_SQL 使用详解 #### 一、概述 在Oracle数据库中,`DBMS_SQL`包是一个功能强大的工具,用于执行动态SQL语句。它提供了处理动态SQL语句的能力,使得开发人员能够灵活地构建和执行SQL语句,而不需要...

    ORACLE NO_DATA_FOUND的三种处理办法

    DBMS_OUTPUT.PUT_LINE('没有找到匹配的数据'); -- 其他可能的异常处理 END; / ``` 在这个例子中,如果游标没有找到任何数据,程序将执行`WHEN NO_DATA_FOUND THEN`后面的代码,而不是抛出错误。 **方法二:使用%...

    Oracle系统包详细使用方法

    首先,我们来看dbms_output包,它用于在PL/SQL程序中进行输入和输出。通过enable和disable过程,我们可以开启或关闭输出功能。put_line过程用于打印一行文本,而put过程则允许逐字符输出,配合new_line过程添加换行...

    关于用oracle的dbms_xmldom导出xml文档编码格式UTF-8的问题总结

    - 在创建XML文档的过程中,可以利用`dbms_output.put_line`等方法输出调试信息,帮助定位问题所在。 - 测试不同的编码格式(如UTF-8、GB2312)的效果,确保最终输出的XML文档能够被正确解析和显示。 5. **参考...

    Oracle-Basics-of-PL_SQL.rar_oracle

    1. **DBMS_OUTPUT**:在PL/SQL中使用DBMS_OUTPUT.PUT_LINE输出信息,配合PHP的oci_get_output函数获取这些信息,实现调试。 2. **预编译语句**:通过预编译语句,可以提高执行效率,减少SQL注入的风险。 3. **绑定...

    Oracle---PL-SQL经典练习题1.docx

    知识点:PL/SQL 程序块的基本结构、变量声明、SELECT INTO 语句、DBMS_OUTPUT.PUT_LINE procedures 在 PL/SQL 中,程序块是基本的编程单元。程序块由 DECLARE、BEGIN、EXCEPTION 和 END四部分组成。DECLARE 部分...

    oralce异常信息对照表

    DBMS_OUTPUT.PUT_LINE('No data found for the given condition.'); WHEN TOO_MANY_ROWS THEN DBMS_OUTPUT.PUT_LINE('More than one row matched the condition.'); WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('An...

    Oracle PL/SQL常用47个工具包

    9. **DBMS_OUTPUT.PUT_LINE 和 DBMS_OUTPUT.GET_LINE**: 分别用于写入和读取调试信息。 10. **DBMS_LOB**: 处理大型对象(LOBs),如BFILE、BLOB、CLOB和NCLOB。 11. **DBMS_SQL**: 动态执行SQL语句,提供解析、...

    Oracle内置包_reference

    以上只是Oracle内置包的一部分,实际上,Oracle还提供了许多其他的包,如DBMS_OUTPUT、DBMS_METADATA等,它们构成了Oracle数据库强大的功能集合,为开发人员提供了丰富的工具来处理各种数据库任务。掌握这些内置包的...

    Oracle-03多表查询及编程

    --使用PLSQL输出三角形,只要是三个角 declare m number := 10; begin ... dbms_output.put('*'); else dbms_output.put(' '); end if; end loop; dbms_output.new_line(); end loop; end;

    Oracle内置包_reference.rar

    `DBMS_JOB`是旧版的调度器,而`DBMS_SCHEDULER`在Oracle 10g引入,提供更高级的功能和灵活性。 5. **DBMS_SQL** - 这个包提供了一种动态执行SQL语句的方式,允许在运行时构建和执行SQL,这对于编写灵活的数据库应用...

    ORACLE随机数DBMS_RANDOM包

    DBMS_OUTPUT.PUT_LINE(j); END; ``` 2. **dbms_random.random** 此函数无参数,返回一个介于`-2^31`到`2^31-1`之间的整数值,即随机整数可以是负数或正数,且范围较大。这个函数适用于需要整数随机数的场景。 ...

    Oracle-Built-In-Packages

    1.2.1 **应用开发包** - 这些包旨在帮助开发人员构建应用程序,如DBMS_OUTPUT用于调试PL/SQL代码,DBMS_SQL用于动态执行SQL,以及DBMS_LOB处理大型对象(LOBs)等。 1.2.2 **服务器管理包** - 包括DBMS_JOB用于调度...

    oracle-教程-第6章-SQL基础.ppt

    此外,DBMS_OUTPUT 包提供了三个用于输出的函数:DBMS_OUTPUT.PUT、DBMS_OUTPUT.PUT_LINE 和 DBMS_OUTPUT.NEW_LINE,用于显示 PL/SQL 程序模块的输出信息。在 SQL*Plus 环境下,需要先执行环境设置命令 SET ...

    oracle恢复工具-FY_Recover_Data

    exec dbms_output.enable(999999999999999999999); --//默认为2000 bytes 注意:如果不不进行设置,为报PLSQL ORA-20000: ORU-10027: buffer overflow, limit of 10000 第六步:实施truncate表中数据恢复 ...

    Oracle-procedure.rar_oracle_oracle procedure_oracle 存储过程

    DBMS_OUTPUT.PUT_LINE('Result: ' || v_result); END; / ``` 这段代码声明了一个变量`v_result`,然后调用`my_procedure`并将结果赋值给`v_result`。 四、存储过程的优势 1. **性能提升**:由于存储过程在首次编译...

    通过ORACLE的UTL_HTTP工具包发送包含POST参数的请求

    可以使用数据库的日志功能记录输出结果,或者直接通过`DBMS_OUTPUT`查看响应。 #### 结论 通过以上介绍,我们可以看到`UTL_HTTP`工具包为Oracle环境下的HTTP交互提供了丰富的功能和支持。无论是简单的GET请求还是...

    oracle 报表开发中用PCK直接生成xml数据文件

    Oracle的`dbms_xmlgen`包提供了生成XML文档的功能,它能够将数据库查询结果转换成XML格式。在描述中提到的`XML_PRINT`过程,就是利用`dbms_xmlgen.getXML()`来实现这个功能的一个示例。首先,我们来看一下这个过程的...

    oracle 函数 oracle函数 存储过程

    首先,我们讨论`DBMS_OUTPUT`包,这是一个用于在Oracle SQL*Plus或PL/SQL环境中进行调试和信息输出的工具。它主要包括以下几个过程: 1. `enable`:启用`DBMS_OUTPUT`,允许输出信息到缓冲区。`buffer_size`参数可...

    Oracle-API.zip

    Oracle API 还包含了一些重要的包,如 DBMS_LOCK、DBMS_OUTPUT 和 DBMS_SCHEDULER。DBMS_LOCK 包用于实现进程间的锁定机制,保证并发操作的安全;DBMS_OUTPUT 提供了在服务器端打印和查看信息的功能,对调试非常有用...

Global site tag (gtag.js) - Google Analytics