PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【www.unjs.com - 电脑资料】

    首先,创建一个存储过程 get_clob:

    t_name:要查询的表名;f_name:要查询的字段名;u_id:表的主键,查询条件;l_pos:截取的开始位置; l_amount :截取长度;

    CREATE OR REPLACE PROCEDURE get_clob(t_name in varchar2, f_name in varchar, u_id in integer, l_pos in integer, l_amount in BINARY_INTEGER, ReturnValue out varchar2) is

    rule_xml clob;

    l_buffer varchar2(3999);

    l_amount_ BINARY_INTEGER;

    begin

    execute immediate 'select ' ||f_name|| ' from ' ||t_name|| ' where id=:1' into rule_xml using u_id;

    l_amount_:=l_amount;

    DBMS_LOB.read(rule_xml, l_amount_, l_pos, l_buffer);

    ReturnValue := l_buffer;

    end get_clob;

    然后是php的处理程序:

    $content = "";

    $num = 0;//clob字段长度

    $stmt = $oracle->prepare("select length(content) as num from test where id = $id");

    if ($stmt->execute()) { //zjh为查询的条件

    $row = $stmt->fetch();

    $num = $row['NUM'];

    }

    $start = 1;//初始化开始位置

    $len = 2500;//截取长度

    $t_name = 'test';//操作表名

    $f_name = 'content';//需要查询的clob字段名

    while ($start <= $num){

    $ret='';

    $sql = "begin get_clob(?,?,?,?,?,?); end;";

    $stmt = $oracle->prepare($sql);

    $stmt->bindParam(1, $t_name, PDO::PARAM_STR, 100);

    $stmt->bindParam(2, $f_name, PDO::PARAM_STR, 100);

    $stmt->bindParam(3, $id, PDO::PARAM_STR, 100);

    $stmt->bindParam(4, $start, PDO::PARAM_STR, 100);

    $stmt->bindParam(5, $len, PDO::PARAM_STR, 100);

    $stmt->bindParam(6, $ret, PDO::PARAM_STR, 5000);

    $stmt->execute();

    $content .= $ret;

    $start=$start+$len;

    }

    $oracle = null;

    以上就是完整的解决办法,这个方法不是俺的首创,做过pb项目的人大多数应该比较熟悉这种操作,

PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法

电脑资料

PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法》(https://www.unjs.com)。

    php操作Oracle的资料网上还是比较少的,能解决问题的就更不多了,发出来跟大家分享一下,肯定还有其他比较好的解决办法,欢迎跟大家一起探讨。

   

您可能感兴趣的文章:

在PHP中PDO解决中文乱码问题的一些补充

PHP5中使用PDO连接数据库的方法

PHP PDO函数库详解

封装一个PDO数据库操作类代码

PHP PDO函数库(PDO Functions)

php PDO中文乱码解决办法

php5 pdo新改动加载注意事项

一个基于PDO的数据库操作类

    QQ空间 搜狐微博 人人网 开心网 百度搜藏更多

    Tags:PDO Oracle lob

    复制链接收藏本文打印本文关闭本文返回首页

    上一篇:Oracle9i 动态SGA,PGA特性探索

    下一篇:Oracle排名函数(Rank)实例详解

   

相关文章

2007-03-03oracle初始化参数设置

2013-05-05解析jdbc处理oracle的clob字段的详解

2013-03-03Oracle查看和修改连接数(进程/会话/并发等等)

2009-06-06oracle10g 数据备份与导入

2007-03-03Oracle数据库的安全策略

2009-02-02Oracle针对数据库某一行进行操作的时候,如何将这一行加行锁

2009-11-11oracle 常用的几个SQL

2009-03-03oracle 常见等待事件及处理方法

2007-03-03深刻理解Oracle数据库的启动和关闭

2012-11-11oracle 分页问题解决方案

   

文章评论

   

最 近 更 新

   

oracle 存储过程和函数例子

Oracle字符集修改查看方法

Oracle收购TimesTen 提高数据库软件性能

oracle中UPDATE nowait 的使用方法介绍

oracle初始化参数设置

Oracle 数据显示 横表转纵表

Oracle 启动例程 STARTUP参数说明

Oracle10g通过DBLink访问MySQL示例

ORACLE应用经验(2)

oracle SQL命令大全

   

热 点 排 行

   

ORACLE 10g 安装教程[图文]

oracle常用sql语句

oracle sqlplus 常用命令大全

oracle 触发器 学习笔记

ORACLE常用数值函数、转换函数、

Oracle数据库下载及安装图文操作

oracle中的视图详解

oracle 查询表名以及表的列名

ORACLE数据库查看执行计划的方法

oracle 存储过程和函数例子

最新文章