当前位置:  数据库>oracle

Oracle里大数据保存至CLOB解决方法

    来源: 互联网  发布时间:2017-05-31

    本文导语: 如果数据太大,我们无法对clob变量直接赋值,这时我们可以通过dbms_lob.read、dbms_lob.write方法分阶段的读取和写入clob变量内。但这时我们应该对clob变量建立缓存,如下的第一句。这里给出一个示例程序,可以通过变换dbms_lob.read...

如果数据太大,我们无法对clob变量直接赋值,这时我们可以通过dbms_lob.read、dbms_lob.write方法分阶段的读取和写入clob变量内。但这时我们应该对clob变量建立缓存,如下的第一句。这里给出一个示例程序,可以通过变换dbms_lob.read和dbms_lob.write顺序使程序不仅能写入大数据还能读取大数据。

dbms_lob.createtemporary(lob_loc => x_clob,
                            cache  => TRUE);
PROCEDURE load_clob(p_clob_in IN CLOB,
                      x_clob    IN OUT NOCOPY CLOB) IS
     
    l_clob_len NUMBER := dbms_lob.getlength(p_clob_in);
    l_data VARCHAR2(32756);
    l_buf_len_std NUMBER := 4000;
    l_buf_len_cur NUMBER;
    l_seg_count  NUMBER;
    l_write_offset NUMBER;
  BEGIN
    IF p_clob_in IS NOT NULL THEN
      l_seg_count := floor(l_clob_len / l_buf_len_std);
      FOR i IN 0 .. l_seg_count
      LOOP
         
        IF i = l_seg_count THEN
          l_buf_len_cur := l_clob_len - i * l_buf_len_std;
        ELSE
          l_buf_len_cur := l_buf_len_std;
        END IF;
         
        IF l_buf_len_cur > 0 THEN
          dbms_lob.read(lob_loc => p_clob_in,
                        amount  => l_buf_len_cur,
                        offset  => i * l_buf_len_std + 1,
                        buffer  => l_data);
          l_write_offset := nvl(dbms_lob.getlength(lob_loc => x_clob),
                                0) + 1;
          dbms_lob.write(lob_loc => x_clob,
                        amount  => l_buf_len_cur,
                        offset  => l_write_offset,
                        buffer  => l_data);
        END IF;
      END LOOP;
    END IF;
  END load_clob;


    
 
 

您可能感兴趣的文章:

  • Oracle中serveroutput参数一次设置永久保存方法
  • oracle环境变量保存问题求教
  • 请问保存文章内容的字段应用什么类型的(oracle),急!!!
  • oracle导出sql语句的结果集和保存执行的sql语句(深入分析)
  • 高分求助:在oracle中保存图片问题
  • 怎样用oracle保存长字符串(4、5千字左右),并用jsp取出?在线给分
  • 解决oracle用户连接失败的解决方法
  • Oracle Connect to Idle Instance解决方法
  • Linux下安装Tomcat后与Oracle冲突的解决
  • linux下安装oracle,出现没有权限的报警,怎么解决?
  • 安装Oracle加载数据库错误areasQueries的解决
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • Linux安装Oracle 11时报错DISPLAY解决方案
  • Linux下Oracle安装时遇到的问题及解决
  • 简单的Oracle小问题解决
  • oracle中文乱码解决的办法
  • 关于系统重装后Oracle数据库完全恢复的解决办法
  • 安装oracle9时,安装界面的字体无法正确显示,怎么解决啊???
  • Oracle安装后8080和80端口被占用的解决办法
  • oracle远程连接服务器出现 ORA-12170 TNS:连接超时 解决办法
  • oracle 实际值超过数据库某个字段指定长度报错解决
  • Linux下命令行启动oracle时报错的解决
  • 急!急!jbuilder中新建oracle数据源的问题,解决立即给分!
  • Linux系统下安装Oracle X11错误解决办法
  • Linux中安装Oracle乱码问题的解决
  • Oracle与JSDK4.0环境变量冲突,如何解决(在线等待)?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux下安装oracle后使用命令行启动的方法 linux启动oracle
  • ORACLE 中修改用户密码的方法
  • Linux下完全卸载ORACLE 10G的方法
  • 将Oracle 8i数据成功移植Oracle 10g的方法
  • oracle增加表空间大小两种实现方法
  • linux下用ODBC链接Oracle怎么连啊?跪求具体方法!!!
  • Linux系统下查看oracle SID的方法
  • oracle 彻底删除方法
  • window中oracle环境变量设置方法分享
  • Oracle 忘记密码的找回方法
  • javascript开源软件 iis7站长之家
  • Oracle SID存在解決方法
  • 登录oracle数据库时密码忘记的解决方法
  • PB7 连接 Oracle 的设置方法
  • Oracle删除后不能重新安装的解决方法
  • oracle删除文件后数据库启动不了的处理方法
  • 跪求UNIX 下C用OCI连接ORACLE方法。高手进!!!
  • 彻底删除Oracle数据库的方法
  • oracle drop table(表)数据恢复方法
  • oracle数据库中查看系统存储过程的方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • oracle 11g最新版官方下载地址
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 虚拟机装Oracle R12与Oracle10g
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • Oracle 数据库开发工具 Oracle SQL Developer
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,