oracle系统包—-dbms_output用法
dbms_output包主要用于调试pl/sql程序,或者在sql*plus命令中显示信息(displaying message)和报表,譬如我们可以写一个简单的匿名pl/sql程序块,而该块出于某种目的使用dbms_output包来显示一些信息。
涉及到的知识点如下:
1、enable:在serveroutput on的情况下,用来使dbms_output生效(默认即打开)
2、disable:在serveroutput on的情况下,用来使dbms_output失效
3、put:将内容写到内存,等到put_line时一起输出
4、put_line:不用多说了,输出字符
5、new_line:作为一行的结束,可以理解为写入buffer时的换行符
6、get_line(value, index):获取缓冲区的单行信息
7、get_lines(array, index):以数组形式来获取缓冲区的多行信息
需要注意以下几点:
1、set serveroutput on:如果要在sqlplus中看到dbms_output的输出,则必须设置该参数值为on
2、每行能容纳的最大值是32767bytes
3、buffer的默认值是20000bytes,可设置的最小值为2000bytes,最大值为1000000bytes
例子一、put和new_line
1
2
3
4
5
6
7
8
9
|
set serveroutput on ;
begin
dbms_output.put( 'a' ); --写入buffer但不输出
dbms_output.put( 'b' ); --写入buffer但不输出
dbms_output.new_line; --回车(换行),输出
dbms_output.put_line( 'hello world!' ); --输出并换行
dbms_output.put( 'd' ); --写入buffer但不输出
end ;
/
|
执行运行结果:
1
2
|
ab
hello world!
|
例子二、put_line
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
set serveroutput off ;
create table t(a int , b int , c int );
insert into t values (111111,222222,333333);
insert into t values (444444,555555,666666);
insert into t values (777777,888888,999999);
commit ;
create table tt(a int ,b varchar2(100));
declare
msg varchar2(120);
cursor t_cur is select * from t order by a;
v_line varchar2(100);
v_status integer := 0;
begin
dbms_output.enable;
for i in t_cur loop
msg := i.a || ',' || i.b || ',' || i.c;
dbms_output.put_line(msg); --put
end loop;
dbms_output.get_line(v_line, v_status); --get
while v_status = 0 loop
insert into tt values (v_status, v_line);
dbms_output.get_line(v_line, v_status);
end loop;
end ;
/
select * from tt;
|
执行结果如下:
1
2
3
4
5
|
a b
--- -----------------------
0 111111,222222,333333
0 444444,555555,666666
0 777777,888888,999999
|
注:使用get_line时不能用put_line输出,因为put_line之后会将buffer清空。(当然在serveroutput off的情况下put_line是不影响buffer的)。
例子三:put_lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
set serveroutput on ;
declare
v_data dbms_output.chararr;
v_numlines number;
begin
--enable the buffer first.
dbms_output.enable(1000000);
dbms_output.put_line( 'line one' );
dbms_output.put_line( 'line two' );
dbms_output.put_line( 'line three' );
v_numlines := 3;
dbms_output.get_lines(v_data, v_numlines); --array, index
for v_counter in 1..v_numlines loop
dbms_output.put_line(v_data(v_counter));
end loop;
end ;
/
|
执行结果如下:
1
2
3
|
line one
line two
line three
|
注意数组使用的格式。
转载于:https://www.cnblogs.com/linjiqin/p/3152647.html
oracle系统包—-dbms_output用法相关推荐
- oracle 创建,删除存储过程,参数传递,创建,删除存储函数,存储过程和函数的查看,包,系统包
认识存储过程和函数 存储过程和函数也是一种PL/SQL块,是存入数据库的PL/SQL块.但存储过程和函数不同于已经介绍过的PL/SQL程序,我们通常把PL/SQL程序称为无名块,而存储过程和函数是以命 ...
- DBMS_SQL系统包的使用
转自:http://taosst.javaeye.com/blog/284770 PL/SQL中使用动态SQL编程 在PL/SQL程序设计过程中,会遇到很多必须使用动态sql的地方,oracle系统所 ...
- oracle scur,详解Oracle游标的简易用法
下面看下Oracle游标的简易用法,具体代码如下所示: create or replace procedure NW_DelYW(iOPERATION_ID number, sUserID varch ...
- Oracle之DBMS_SQL包用法详解
Oracle之DBMS_SQL包用法详解 原文 http://zhangzhongjie.iteye.com/blog/1948093 通常运用 DBMS_SQL 包一般分为 如下 几步: 1. o ...
- Oracle trunc()函数的用法
--Oracle trunc()函数的用法 /**************日期********************/ 1.select trunc(sysdate) from dual --20 ...
- oracle中类似indexof用法_instr函数
oracle中类似indexof用法_instr函数 [sql] 在oracle中没有indexof()函数 但是提供了一个 instr() 方法 具体用法: select instr('保定市南市区 ...
- Oracle中group by用法
Oracle中group by用法 在select 语句中可以使用group by 子句将行划分成较小的组,一旦使用分组后select操作的对象变为各个分组后的数据,使用聚组函数返回的是每一个组的汇总 ...
- oracle 获得月最后一天,oracle获取本月第一天和最后一天及Oracle trunc()函数的用法...
select to_char(trunc(add_months(last_day(sysdate), -1) + 1), 'yyyy-mm-dd') "本月第一天", to_cha ...
- Oracle with语句的用法
http://database.51cto.com/art/201010/231528.htm Oracle with语句是经常可以见到的语句,下面就为您详细介绍Oracle with语句的用法,如果 ...
最新文章
- 微信的通讯录首字母滑动的实现
- QTP自动化测试-笔记 注释、大小写
- AppLaunchScreen/Screenshot(启动图/屏幕快照)输出规范
- 性能之外:LSI 6Gb/s SAS RAID渠道先行
- 和Google 微帧 Hulu Hotstar 爱奇艺 火花思维 猿辅导 新浪微博的专家聊聊Codec
- 电脑上怎么做pdf文件_PDF压缩文件怎么压缩最小?请收好这些PDF压缩方法
- Nginx 介绍与Linux下安装配置
- 吴恩达|机器学习作业1.1多变量线性回归
- vue怎么根据id获取组件_vue子组件,如何根据父组件传进来的id,去查询详情,并在子组件中显示?...
- element el-upload上传图片完成后隐藏上传
- 抓取Web网页数据分析
- vue for循环中使用setTimeout没用 笔记
- Quartus-II入门
- vs2017调用目标发生了异常
- 程序员的成长课-读后感
- chrome 清理缓存
- java token 生成_生成 Token
- 三年级优秀书籍推荐_三年级好书推荐
- PDF文件有密码怎么取消加密
- 01-Redis核心数据结构和高性能原理
热门文章
- python中itertools groupby函数是干嘛的_Python-如何使用itertools.groupby()?
- oracle从一个表insert语句,Oracle 使用PLSQL 导出 一个表的insert 语句
- 属性与意图识别_解密宝能汽车智能驾舱的“未来属性”
- popen函数_PHP中16个高危函数
- sierra mysql_macOS High Sierra 使用 Homebrew 安装 MYSQL 5.7
- css不换行属性_前端 | css display:flex 的六个属性你知道吗
- 特征值与特征向量(一)
- Oracle 安装完怎么用,oracle 11g 安装完怎么用
- java跳转语句包含goto_Java 的跳转语句中 _______( 包含 / 不包含 )goto 语句。_学小易找答案...
- 程序员的数学3线性代数pdf_程序员带娃福利:《汉声数学》41本PDF