本文共 887 字,大约阅读时间需要 2 分钟。
答案是否
除了自动添加回车换行外,还有就是缓冲区最大容量的问题!!
无论如何设置serveroutput size,10g里
put() 最多只能输出 32767 个byte
而
put_line() 的最大容量为 1000000个byte
以下的代码目的是生成一个oracle数据库的用户自定义的存储过程和函数!如果你的用户代码足够长(大于32767),就会发现
使用put()会报错,而使用put_line()不会报错!
不过问题是:使用put_line()获得的代码都会插入一个空行,十分不爽!我目前还没想到解决方法,若高手指点,不胜感谢!
declare
tablename varchar2(30) := '%';begin for objname in (select distinct TYPE, name from user_source where TYPE in ('PROCEDURE', 'FUNCTION') and name like tablename order by TYPE, name) loop dbms_output.enable(10000000); dbms_output.put('CREATE OR REPLACE' || ' '); for output in (select text from user_source where name = objname.name and TYPE in ('PROCEDURE', 'FUNCTION') order by TYPE, name, line) loop/* dbms_output.put(output.text); --如果使用put则会报错 */
dbms_output.put_line(output.text);
end loop; dbms_output.put_line('/'); end loop;end;http://www.cnblogs.com/jinzhenshui/archive/2009/01/01/1366404.html