ORACLE 调试输出,字符串执行函数
2008-04-29 13:58
288 查看
Oracle PL/SQL 过程调试的输出方法
1.最基本的DBMS_OUTPUT.PUT_LINE()方法。随便在什么地方,只要是BEGIN和END之间,就可以使用DBMS_OUTPUT.PUT_LINE(output);
然而这会有一个问题,就是使用该函数一次最多只可以显示255个字符,否则缓冲区会溢出。
此外,函数DBMS_OUTPUT.ENABLE(20000)这种函数,仅仅是设置整个过程的全部输出缓冲区大小,而非DBMS_OUTPUT.PUT_LINE()的缓冲区大小。
对于超过255个字符的变量,使用DBMS_OUTPUT.PUT_LINE()方法是没有效的。据说在Oracle10中,解除了这个限制,可以输出任意大小的字符串。
declare
output varchar2(200);
begin
output:=''...''; //赋值
DBMS_OUTPUT.PUT_LINE(output);
end;
如果以上执行结果成功但没有显示请执行 set serveroutput on; 然后就可以了;
2.使用表的方法。
首先建立一张表,然后在PL/SQL中将要输出的内容插到表中。然后再从表中查看内容。对于这种方法一次可以输出几千个字符。
(1) create table my_output{
id number(4),
txt varchar2(4000)
);
(2) declare
output varchar2(4000);
strSql varchar2(4500);
count number(4):=0;
begin
strSql:=''delete * from my_output'';
EXECUTE IMMEDIATE strSql;
output:=''...''; //赋值
count:=count+1;
strSql:=''Insert into my_output value (count,''''''||output||'''''')'';
--''''在单引号中相当于字符''
EXECUTE IMMEDIATE strSql;
end;
3.使用输出文件的方法。
如果变量非常大,以致连使用表都没有办法插入时,只有使用文件方式了。
(1) create or replace directory TMP as ''d:/testtmp'';
--建立一个文件夹路径
(2) declare
file_handle UTL_FILE.FILE_TYPE;
output varchar2(30000);
begin
output:="....";
file_handle := UTL_FILE.FOPEN(''TMP'', ''output.txt'', ''w'',[1-32767]);
--四个参数:目录,文件名,打开方式,最大行数(默认为2000)
UTL_FILE.PUT_LINE(file_handle, output);
UTL_FILE.FCLOSE(file_handle);
exception
WHEN utl_file.invalid_path THEN
raise_application_error(-20000, ''ERROR: Invalid path for file or path not in INIT.ORA.'');
end;
相关文章推荐
- ORACLE 调试输出,字符串执行函数
- Oracle 在存储过程或函数中执行字符串sql
- 将Oracle中的GUID转换为字符串输出函数
- var_dump() 函数调试显示(输出深度,字符串字数)设置
- Oracle 在函数或存储过程中执行sql查询字符串并将结果值赋值给变量
- Oracle如果需要输出引号或执行字符串里面的语句需要引号
- 编写一个函数 接受两个字符串参数 如果 第一个参数被第二个包含 则输出第一个参数的首字符(图)
- 如何列出一个可执行档里输出的函数
- oracle 逆序输出字符串 11g
- eval()函数 字符串转json对象,执行字符串
- 字符串分割成多行数据(oracle函数)
- (3) 编写一个截取字符串的函数,输入一个字符串和字节数,输出按字节书截取的字符串,但是要保证汉字不能截半个
- 编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”
- 2.写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 【我的算法日记】请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。
- oracle取字符串长度的函数length()和hengthb()
- 字符串输出输入函数,const修饰符,内存分区,动态内存管理,指针和函数,结构体
- oracle over函数, wm_concat()字符串连接函数使用
- Oracle分隔字符串后输出(列转行)
- 利用函数递归逆序输出一个字符串