数据库output用法,output语句的作用

http://www.itjxue.com  2023-01-14 14:03  来源:未知  点击次数: 

dbms_output的简介

Oracle推荐在debug PL/SQL程序时使用该程序包,不推荐使用该包来做报表输出或其他格式化输出之用。

概述

DBMS_OUTPUT包主要用于调试PL/SQL程序,或者在SQL*PLUS命令中显示信息(displaying message)和报表,譬如我们可以写一个简单的匿名PL/SQL程序块,而该块出于某种目的使用DBMS_OUTPUT包来显示一些信息。

在该DBMS_OUTPUT包中存在2个存储过程,它们是PUT_LINE和PUT过程,使用这2个Procedure可以做到将信息存放到PL/SQL的Buffer中,以便其他的触发器、存储过程、程序包来读取。在独立的PL/SQL程序或匿名块中,我们还可以使用GET_LINES和GET这2个存储过程来将存放在PL/SQL Buffer中的信息输出(display)到屏幕。

DBMS_OUTPUT包子程序摘要 DISABLE存储过程 禁用消息输出 ENABLE 存储过程 启用消息输出 GET_LINE 存储过程 从buffer中获取单行信息 GET_LINES 存储过程 从buffer中获取信息数组 NEW_LINE 存储过程 终结有PUT过程所创建的一行 PUT 存储过程 将一行信息放到buffer中 PUT_LINE 存储过程 将部分行信息放到buffer中 注意目前PUT过程已废弃,因为遗留问题将被保留,但不在推荐使用。

DISABLE存储过程

该存储过程用以禁用对PUT, PUT_LINE, NEW_LINE, GET_LINE, and GET_LINES过程的调用,并会清理buffer中任何残存信息。

与之相反的是ENABLE存储过程,若在SQL*PLUS中使用SERVEROUTPUT选项则不需要调用该存储过程。

语法

DBMS_OUTPUT.DISABLE;

编译器指示

pragma restrict_references(disable,WNDS,RNDS);

ENABLE存储过程

该存储过程用以启用对PUT, PUT_LINE, NEW_LINE, GET_LINE, and GET_LINES存储过程的调用。

语法

DBMS_OUTPUT.ENABLE (

buffer_size IN INTEGER DEFAULT 20000);

编译指示

pragma restrict_references(enable,WNDS,RNDS);

参量 buffer_size Buffer长度的上限,单位为bytes字节。将buffer_size设置为NULL即指定没有限制

使用注意事项

当在SQL*PLUS总使用 SET SERVEROUTPUT选项时没有必要使用该过程若有多次对ENABLE过程的调用,那么buffer_size以最后指定的为准。当用户没有指定buffer size为NULL时,该参量的上限为1,000,000字节,而下限为2,000一般建议buffer size设置为NULL,10g中默认值使用20000以便兼容老的数据库版本。

GET_LINE 存储过程

该过程用以从buffer中获取单行信息。

语法

DBMS_OUTPUT.GET_LINE (

line OUT VARCHAR2,

status OUT INTEGER);

参量 line 将返回buffer中的一行信息,但不包括最后的换行符。一般建议申明该参数为VARCHAR2(32767)类型,以避免出现ORA-06502: PL/SQL: numeric or value error: character string buffer too small”.错误 status 若调用成功则返回0,若buffer中没有更多行的信息则返回1

使用注意事项

可以选择是从buffer中获取单行还是多行的数组信息。使用GET_LINE过程可以获取单行信息。从性能考虑,应当减少调用次数,使用GET_LINES函数直接从buffer中返回一个多行的数组若在使用SQL*PLUS则可以设置SET SERVEROUTPUT选项控制是否直接输出到屏幕在调用GET_LINE或GET_LINES后,任何行信息在下一次的PUT, PUT_LINE, or NEW_LINE前没有被获取的都将被丢弃,以避免误会

GET_LINES 存储过程

该存储过程用以从Buffer中获取一个多行的的数组

语法

DBMS_OUTPUT.GET_LINES (

lines OUT CHARARR,

numlines IN OUT INTEGER);

DBMS_OUTPUT.GET_LINES (

lines OUT DBMSOUTPUT_LINESARRAY,

numlines IN OUT INTEGER);

参量 lines 返回Buffer中多行信息的数组。该数组中每行的最大长度为32767bytes。 numlines 想要获取行的数量。在成功获取多行信息后,该过程将返回实际获取的行数。若返回的数字小于要求的值时,说明buffer中没有更多行的信息了。

使用注意事项:

可以选择是从buffer中获取单行还是多行的数组信息。使用GET_LINE过程可以获取单行信息。从性能考虑,应当减少调用次数,使用GET_LINES函数直接从buffer中返回一个多行的数组若在使用SQL*PLUS则可以设置SET SERVEROUTPUT选项控制是否直接输出到屏幕在调用GET_LINE或GET_LINES后,任何行信息在下一次的PUT, PUT_LINE, or NEW_LINE前没有被获取的都将被丢弃,以避免误会

数据库output什么意思

英 [?a?tp?t] 美 [?a?t?p?t]

n.输出;产量; 作品; [计]输出信号。

vt.输出网络

输出类型; 量;语言输出。

扩展资料

output的反义词:

input

英 [??np?t] 美 [??n?p?t]

n.

输入,投入;输入电路;电输入端;输入的数据

vt.

把…输入电脑;[自][电子] 输入;输入,给料

第三人称单数: inputs

复数: inputs

现在分词: inputting

过去式: input inputted

过去分词: input inputted

存储过程参数输入和输出参数有什么作用

无论是输入的参数还是输出的参数,在此过程中都视为一个参数,所以一般情况下对应你定义的参数类型和个数带入,便可调用。

存储过程后面的是参数列表,其实存储过程就是个方法,通过传递参数来指导方法完成。输出参数相当于返回值,会带output关键字。

其它参数要提前赋值,而output不需要提前赋值,只需要提供一个变量,在存储过程执行完的时候,output类型的变量值就会修改,获得返回值,只能通过这个方法获得返回值,而不能像函数一样直接返回结果。因为存储过程是没有返回值的。

扩展资料

1、存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。

2、当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。

3、存储过程可以重复使用,可减少数据库开发人员的工作量。

4、安全性高,可设定只有某些用户才具有对指定存储过程的使用权。

参考资料来源:百度百科-存储过程

(责任编辑:IT教学网)

更多

推荐mac苹果系统文章