数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

OraclePL/SQL过程调试的输出方法


发布日期:2024年08月24日
 
OraclePL/SQL过程调试的输出方法

最基本的DBMS_OUTPUTPUT_LINE()方法

随便在什么地方只要是BEGIN和END之间就可以使用DBMS_OUTPUTPUT_LINE(output);然而这会有一个问题就是使用该函数一次最多只可以显示个字符否则缓沖区会溢出

此外函数DBMS_OUTPUTENABLE()这种函数仅仅是设置整个过程的全部输出缓沖区大小而非DBMS_OUTPUTPUT_LINE()的缓沖区大小

对于超过个字符的变量使用DBMS_OUTPUTPUT_LINE()方法是没有效的据说在Oracle解除了这个限制可以输出任意大小的字符串

declare

output varchar();

begin

output:=; //赋值

DBMS_OUTPUTPUT_LINE(output);

end;

使用表的方法

首先建立一张表然后在PL/SQL中将要输出的内容插到表中然后再从表中查看内容对于这种方法一次可以输出几千个字符

() create table my_output{

id number()

txt varchar()

);

() declare

output varchar();

strSql varchar();

count number():=;

begin

strSql:=delete * from my_output;

EXECUTE IMMEDIATE strSql;

output:=; //赋值

count:=count+;

strSql:=Insert into my_output value (count||output||);

在单引号中相当于字符

EXECUTE IMMEDIATE strSql;

end;

使用输出文件的方法

如果变量非常大以致连使用表都没有办法插入时只有使用文件方式了

() create or replace directory TMP as d:\testtmp;

建立一个文件夹路径

() declare

file_handle UTL_FILEFILE_TYPE;

output varchar();

begin

output:=;

file_handle := UTL_FILEFOPEN(TMP outputtxt w[]);

四个参数目录文件名打开方式最大行数(默认为)

UTL_FILEPUT_LINE(file_handle output);

UTL_FILEFCLOSE(file_handle);

exception

WHEN utl_fileinvalid_path THEN

raise_application_error( ERROR: Invalid path for file or path not in INITORA);

end;

               

上一篇:Oracle数据库数据操作和控制语言详解

下一篇:用Forall与bulkcollect快速复制表数据