oracle之dbms_output
oracle的dbms_output
oracle的dbms_output的两个小问题
1、如果dbms_output.put_line的内容不能显示,需要在命令行中先敲入set serveroutput on;只要敲一遍就好,之后dbms_output.put_line的内容就能显示出来了; www.2cto.com
2、dbms_output.put_line每行只能显示255个字符,超过了就会报错,报错内容如下
ORA-20000: ORU-10028: line length overflow, limit of 255 chars per line
解决这个问题的方法如下: www.2cto.com
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
解决方法如下: www.2cto.com
(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的该设定仍然存在。
在SQL Server中的输出方式是PRINT 函数:
IF EXISTS (SELECT zip FROM authors WHERE zip = '')
PRINT 'Berkeley author'
oracle之dbms_output的更多相关文章
- Oracle的dbms_output包的put()和put_line()的区别只是有没有回车换行吗?(转)
答案是否 除了自动添加回车换行外,还有就是缓冲区最大容量的问题!! 无论如何设置serveroutput size,10g里 put() 最多只能输出 32767 个byte 而 put_line() ...
- Oracle的DBMS_OUTPUT.PUT_LINE用法及脚本批处理方法
打印至控制台(无显示): BEGIN DBMS_OUTPUT.PUT_LINE('Hey look, ma!'); END; / 打印至控制台(有显示): SET SERVEROUTPUT ON BE ...
- Oracle 通过sql profile为sql语句加hint
sql profile最大的优点是在不修改sql语句和会话执行环境的情况下去优化sql的执行效率,适合无法在应用程序中修改sql时.sql profile最常用方法大概是:--创建产生sql tuni ...
- oracle管道输出
通常我们会在oracle中用dbms_output输出调试信息,但dbms_output只能在调用过程完成才返回结果,不能实时输出的.这意味着通常我们经常要等几分钟或更长的时间才能看到调试信息,那怎么 ...
- oracle 树状结构递归 PL/SQL输出控制 包括空格输出控制
树状结构 存储过程中通过递归构建,类似BBS回帖显示,代码共三段: 建表,插入数据,创建存储过程显示: 1.create table article(id number primary key,con ...
- PLSQL_性能优化系列19_Oracle Explain Plan解析计划通过Profile绑定
20150529 Created By BaoXinjian
- PL\SQL学习笔记
注释 单行--多行 一.declare一般用于做变量的申明.begin 程序体开始执行 end; 程序体结束exception .. dbms_output.put_line('绝对值'||v_ab ...
- 使用COE脚本绑定SQL Profile
日常运维中,经常会遇到需要绑定好的执行计划的场景. 简单来说,就是将一个sql_id绑定好的plan_hash_value.如果没有使用到绑定变量,还需要把force_match设置为true. 用到 ...
- PostgreSQL存储过程(2)-基于PL/PgSQL的存储过程
介绍 PL/pgSQL 是PostgreSQL 数据库系统的一个可加载的过程语言. PL/pgSQL 的设计目标是创建一种可加载的过程语言,可以 用于创建函数和触发器过程, 为SQL 语言增加控制结构 ...
随机推荐
- jquery.validate动态更改校验规则 【转】
有时候表单中有多个字段是相互关联的,以下遇到的就是证件类型和证件号码的关联,在下拉框中选择不同的证件类型,证件号码的值的格式都是不同的,这就需要动态的改变校验规则. <!DOCTYPE html ...
- Obfuscating computer code to prevent an attack
A method and system for obfuscating computer code of a program to protect it from the adverse effect ...
- php持续集成环境笔记
记录下php集成环境中若干个工具的安装步骤和过程: 安装pear wget http://pear.php.net/go-pear.phar $ php go-pear.phar 使用:pear in ...
- spark一些入门资料
spark一些入门资料 A Scala Tutorial for Java Programmers http://docs.scala-lang.org/tutorials/scala-for-jav ...
- 3.IntelliJ IDEA 使用详解
转自:https://blog.csdn.net/wl_627292578/article/details/53796226 目录结构: InteliJ IDEA 没有工作空间的概念 project ...
- 监控rman备份
1.服务会话关联通道设置 set COMMAND ID 命令 2.查询V$PROCESS和V$SESSION 决定会话对应的RMAN的通道 3.查询V$session_LONGGOPS监控备份集和复制 ...
- CSS之基于不同场景的垂直居中解决方案
元素的水平居中,如果是一个行内元素,就对它的父元素应用 “text-align:center”: 如果是一个块级元素,就对它自身应用“margin:auto”. 垂直居中的几种场景以及实现方法: 一. ...
- win10安装jdk8 配置环境变量
参考:https://jingyan.baidu.com/article/6b97984dd257b41ca2b0bf86.html
- hdu 4825 xor sum(字典树+位运算)
Xor Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)Total S ...
- mac、windows如何强制关闭tomcat进程
方式1.打开cmd,或mac的终端,输入: ① ps aux | grep "tomcat",找到响应的进程id: ② kill -9 查询的id,来强制关闭进程 方式2:wind ...