1. oracledbms_output
  2.  
  3. oracledbms_output的两个小问题
  4.  
  5. 1、如果dbms_output.put_line的内容不能显示,需要在命令行中先敲入set serveroutput on;只要敲一遍就好,之后dbms_output.put_line的内容就能显示出来了; www.2cto.com
  6.  
  7. 2dbms_output.put_line每行只能显示255个字符,超过了就会报错,报错内容如下
  8.  
  9. ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
  10.  
  11. 解决这个问题的方法如下: www.2cto.com
  12.  
  13. declare
  14.  
  15. v_result Varchar2(1000);--这是需要打印出结果的字符串
  16.  
  17. v_pos Number := 1;--用来记录v_result每行开始字符的位置
  18.  
  19. WHILE v_pos<= LENGTH(v_result) LOOP
  20.  
  21. DBMS_OUTPUT.PUT_LINE(SUBSTR(v_result, v_pos, 200));
  22.  
  23. v_pos:= v_pos+ 200;
  24.  
  25. END LOOP;
  26.  
  27. 这样就能打印超过255长度的字符串,超过200长度的自动换行打印出来
  28.  
  29. begin
  30.  
  31. DBMS_OUTPUT.put( "put======= ");--不换行
  32.  
  33. DBMS_OUTPUT.put( "put======= ");--不换行
  34.  
  35. DBMS_OUTPUT.put_line( "putline====== ");--换行
  36.  
  37. DBMS_OUTPUT.put_line( "putline====== ");--换行
  38.  
  39. DBMS_OUTPUT.put_line( "putline====== ");--换行
  40.  
  41. end;
  42.  
  43. 结果:
  44.  
  45. put=======put=======putline======
  46.  
  47. putline======
  48.  
  49. putline======
  50.  
  51. DECLARE
  52. abc number;
  53. CURSOR cur IS SELECT 1 from dual;
  54.  
  55. BEGIN
  56. DBMS_OUTPUT.PUT_LINE( 'cursor opened ');
  57. open cur;
  58.  
  59. LOOP
  60. fetch cur into abc;
  61. DBMS_OUTPUT.PUT_LINE( 'one data ');
  62. exit when cur%notFound;
  63. END LOOP;
  64. close cur;
  65. end;
  66.  
  67. 要使用DBMS_OUTPUT,必须先
  68. SQL> set serveroutput on
  69.  
  70. dbms_output.put_line输出的记录太多的话,会出现缓冲区的溢出:
  71. ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes
  72. ORA-06512: "SYS.DBMS_OUTPUT", line 35
  73. ORA-06512: "SYS.DBMS_OUTPUT", line 198
  74. ORA-06512: "SYS.DBMS_OUTPUT", line 139
  75. ORA-06512: line 9
  76.  
  77. 解决方法如下: www.2cto.com
  78. (1) dbms_output.enable( )设定长度.
  79. DBMS_OUTPUT.ENABLE (buffer_size IN INTEGER DEFAULT 20000);
  80. (注:该方法按如上设置没成功,直接DBMS_OUTPUT.ENABLE (20000);则成功执行)
  81.  
  82. (2) 也可以SET SERVEROUTPUT ON SIZE 5000
  83.  
  84. 其中(1)方法仅对当次设定有效,删除后仍会提示错误,而(2)方法是修改配置信息,如果不关闭Sql*plus的该设定仍然存在。
  85.  
  86. SQL Server中的输出方式是PRINT 函数:
  87.  
  88. IF EXISTS (SELECT zip FROM authors WHERE zip = '')
  89. PRINT 'Berkeley author'

oracle之dbms_output的更多相关文章

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

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

  2. Oracle的DBMS_OUTPUT.PUT_LINE用法及脚本批处理方法

    打印至控制台(无显示): BEGIN DBMS_OUTPUT.PUT_LINE('Hey look, ma!'); END; / 打印至控制台(有显示): SET SERVEROUTPUT ON BE ...

  3. Oracle 通过sql profile为sql语句加hint

    sql profile最大的优点是在不修改sql语句和会话执行环境的情况下去优化sql的执行效率,适合无法在应用程序中修改sql时.sql profile最常用方法大概是:--创建产生sql tuni ...

  4. oracle管道输出

    通常我们会在oracle中用dbms_output输出调试信息,但dbms_output只能在调用过程完成才返回结果,不能实时输出的.这意味着通常我们经常要等几分钟或更长的时间才能看到调试信息,那怎么 ...

  5. oracle 树状结构递归 PL/SQL输出控制 包括空格输出控制

    树状结构 存储过程中通过递归构建,类似BBS回帖显示,代码共三段: 建表,插入数据,创建存储过程显示: 1.create table article(id number primary key,con ...

  6. PLSQL_性能优化系列19_Oracle Explain Plan解析计划通过Profile绑定

    20150529 Created By BaoXinjian

  7. PL\SQL学习笔记

    注释 单行--多行 一.declare一般用于做变量的申明.begin 程序体开始执行  end; 程序体结束exception .. dbms_output.put_line('绝对值'||v_ab ...

  8. 使用COE脚本绑定SQL Profile

    日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...

  9. PostgreSQL存储过程(2)-基于PL/PgSQL的存储过程

    介绍 PL/pgSQL 是PostgreSQL 数据库系统的一个可加载的过程语言. PL/pgSQL 的设计目标是创建一种可加载的过程语言,可以 用于创建函数和触发器过程, 为SQL 语言增加控制结构 ...

随机推荐

  1. ActiveMQ安装部署(Windows)

    JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供标准的产生.发送.接收消息的接口简化企业 ...

  2. ormlite 中的onUpgrade

    public class DBHelper extends OrmLiteSqliteOpenHelper { public static final String DB_NAME = "y ...

  3. PhpStorm Live Template加PHP短语法Short Open Tags打造原生模板

    关于Php要不要使用模板一直被大家讨论,支持的说使用模板更简洁,易与前端project师交流.反对的说Php本身就支持内嵌语法,不是必需再用个模板,减少性能. 事实上使用Php的短语法.直接嵌入也不是 ...

  4. Delphi的时间 x87 fpu control word 精度设置的不够

    在win7 64位系统下, 一个DELPHI写的DLL注入一个C语言程序后. 出现非常奇怪的浮点数相加出错的情况. (注: 在XP系统下是正常的).比如: 40725.0001597563 + 0.7 ...

  5. nj06---包

    二.创建包 1.包的概念 包是在模块基础上更深一步的抽象,Node.js的包类似于C/C++的函数库或者java的类库,它讲某个独立的功能封装起来,用于发布.更新.依赖管理的版本控制.开发了npm来解 ...

  6. spring cloud集成 consul源码分析

    1.简介 1.1 Consul is a tool for service discovery and configuration. Consul is distributed, highly ava ...

  7. GPU开发笔记(一)

    首先我想到的是把安装好的CUDA下的programdata里面的demo都找一找,看看有没有自己需要的demo程序. 然后去CSDN或者pudn上去找找开源的代码. 至于GITHUB还没找过. 其次是 ...

  8. checkbox和文字不再同一水平线上

    为了演示效果,我故意将文字变为12px,将复选框变大,看到的效果就是下面的那样 然后,我们通过给复选框添加vertical-align:middle:让文字和复选框达到同一水平线的效果

  9. 为什么在input中加了display:inline;再加宽,还有作用?

    以前一直一位input是个行内元素,但是,行内元素的特性就是没有宽高的概念,元素多高,多宽,全凭内容撑起来的. 但是今天写了个demo,用chrome控制台显示:display:inline-bloc ...

  10. vuejs scope

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...