Oracle的dbms_output包的put()和put_line()的区别只是有没有回车换行吗?(转)

答案是否

除了自动添加回车换行外,还有就是缓冲区最大容量的问题!!

无论如何设置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

 

时间: 2024-09-07 19:04:23

Oracle的dbms_output包的put()和put_line()的区别只是有没有回车换行吗?(转)的相关文章

oracle中utl_file包读写文件操作实例学习_oracle

在oracle中utl_file包提供了一些操作文本文件的函数和过程,学习了一下他的基本操作 1.创建directory,并给用户授权 复制代码 代码如下: --创建directory create or replace directory TESTFILE as '/home/oracle/zxx/test'; --给用户授权 grant read, write on directory TESTFILE to zxx; 详细介绍 http://download.oracle.com/docs

ORACLE随机数DBMS_RANDOM包_oracle

简单得说,通过dbms_random包调用随机数的方法大致有4种: 1.dbms_random.normal     这个函数不带参数,能返回normal distribution的一个number类型,所以基本上随机数会在-1到1之间.     简单测试了一下,产生100000次最大能到5左右: Sql代码 declare i number:=; j number:=; begin for k in .. loop i:= dbms_random.normal; if i > j then j

使用Oracle的DBMS_SQL包执行动态SQL语句

引用自:http://blog.csdn.net/ggjjzhzz/archive/2005/10/17/507880.aspx 在某些场合下,存储过程或触发器里的SQL语句需要动态生成.Oracle的DBMS_SQL包可以用来执行动态SQL语句.本文通过一个简单的例子来展示如何利用DBMS_SQL包执行动态SQL语句:   DECLARE        v_cursor NUMBER;        v_stat NUMBER;        v_row NUMBER;        v_id

ORaclE用B包体调用A包体的查询结果继续查找

问题描述 ORaclE用B包体调用A包体的查询结果继续查找 ORaclE用B包体调用A包体的查询结果继续查找,要如何使用 比如我有包体 P_T1,根据输入参数返回查询结果, 包体内容如下: PROCEDURE P_t1( P_a IN VARCHAR2, P_CUR OUT V_CUR) Is Begin OPEN P_CUR FOR Select * FROM table_test01 where id=P_a ; end P_t1; 另一包体P_T2, P_t1( 'a' , V_CUR1

file-在oracle使用Utl_File.put_line多次,如何替换掉换行符

问题描述 在oracle使用Utl_File.put_line多次,如何替换掉换行符 直接上代码: Utl_File.put_line(fileid, CONVERT(p_str1, 'AL32UTF8', 'ZHS16GBK')); Utl_File.put_line(fileid, CONVERT(p_str2, 'AL32UTF8', 'ZHS16GBK')); Utl_File.put_line(fileid, CONVERT(p_str3, 'AL32UTF8', 'ZHS16GBK'

数据库-oracle 网络服务名 与 服务名有什么区别

问题描述 oracle 网络服务名 与 服务名有什么区别 1 网络服务名 2 服务名 3 SID 这三个有什么区别,分别有什么作用,希望能从数据库系统运行的机制来解答,谢谢 解决方案 --网络服务名 (NET SERVICES NAME) 它是" 连接描述符 " 简称. 数据库服务名 (SERVICE_NAMES)---------------- 数据库的逻辑表示,它是数据库呈现给客户机的方式.缺省为全局数据库名,即在安装 或数据库创建期间输入的由数据库和域名组成的一种名称,如不存在数

oracle中去掉回车换行空格的方法详解_oracle

去除换行update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(10),'');去掉回车update zhzl_address t set t.add_administration_num=replace(t.add_administration_num,chr(13),'');去掉空格update zhzl_address t set t.add_administration

oracle清空表sql语句 以及Truncate与delete区别

oracle清空表sql语句 以及truncate与delete区别 truncate table [表名] 使用truncate语句从表中删除或群集的所有行.默认情况下,oracle数据库教程也将执行以下任务: 解除分配的唯一例外的是删除的行中使用的所有存储空间由minextents指定参数 下次存储参数设置的从进程的truncate部分取消了最后的范围大小 删除与truncate语句行可以比下降并重新创建表有效.跌落并重新创建一个表的表无效依赖的对象,需要你在桌子上补对象的特权,并要求您重新

oracle数据库对象-包PACKAGE用法

程序包是ORACLE PL/SQL的一个特性,它就像是一个容器或者说是一个命名空间,可以将各种逻辑相关的类型.常量.变量.异常和子程序结合在一起.为开发人员编写大型复杂应用程序时,提供了一个良好的组织单元. 当定义好了程序包之后,应用程序就可以通过包来访问各种不同的功能单元,而不用担心过多零散的子程序导致程序代码的松散. 简化应用设计.提高应用性能.实现信息隐藏.子程序重载. 1.Oracle的Package除 了把存储过程放到一堆儿以外还有没有其他的作用(好处)? 你不觉得把存储过程分门别类是