• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >oracle > PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了lob字段,php pdo oracle,pdo oracle,oracle lob 导出,oracle 不存在的lob值等相关知识,希望本文的分享对您有所帮助
首先,创建一个存储过程 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项目的人大多数应该比较熟悉这种操作。
php操作Oracle的资料网上还是比较少的,能解决问题的就更不多了,发出来跟大家分享一下,肯定还有其他比较好的解决办法,欢迎跟大家一起探讨。 </div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于oracle中clob字段查询慢的问题及解决方法
  • 使用JDBC4.0操作Oracle中BLOB类型的数据方法
  • 深入浅析mybatis oracle BLOB类型字段保存与读取
  • oracle中读写blob字段的问题解析
  • 解析jdbc处理oracle的clob字段的详解
  • oracle数据库中如何处理clob字段方法介绍
  • Oracle 插入超4000字节的CLOB字段的处理方法
  • PDO取Oracle lob大字段,当数据量太大无法取出的问题的解决办法

相关文章

  • 2017-05-11Oracle用户密码过期和用户被锁的解决方法
  • 2017-05-11oracle 集合
  • 2017-05-11Oracle 查找与删除表中重复记录的步骤方法
  • 2017-05-11oracle实现多行合并的方法
  • 2017-05-11Oracle数据库快照的使用
  • 2017-05-11Oracle批量查询、删除、更新使用BULK COLLECT提高效率
  • 2017-05-11Oracle文本函数简介
  • 2017-05-11Oracle触发器表发生了变化 触发器不能读它的解决方法(必看)
  • 2017-05-11Oracle表的分类以及相关参数的详解
  • 2017-05-11Oracle数据更改后出错的解决方法

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 用Oracle并行查询发挥多CPU的威力
    • Oracle性能究极优化 下
    • Oracle 簇的使用详解
    • OraclePL/SQL单行函数和组函数详解
    • Oracle 数据库导出(exp)导入(imp)说明
    • ORACLE应用经验(2)
    • Linux系统下Oracle数据库的安装和启动关闭操作教程
    • EF 配置Oracle数据库的具体操作方法
    • Linux系统(X64)安装Oracle11g完整安装图文教程另附基本操作
    • Oracle 11g数据库安装与卸载的方法图解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有