Oracle中的大字段 Blob/Clob

Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串 Oracle接收长度大于4000的字符串 立即下载
数据库中提供了两种字段类型 Blob  和 Clob 用于存储大型字符串或二进制数据(如图片)。

Blob 采用单字节存储,适合保存二进制数据,如图片文件。
Clob 采用多字节存储,适合保存大型文本数据。

Oracle中处理BLOB/CLOB字段的方式比较特别,所以需要特别注意下面两点:

1. 在Oracle JDBC中采用流机制对 BLOB/CLOB 进行读写操作,所以要注意不能在批处理中读写 BLOB/CLOB字段,否则将出现
Stream type cannot be used in batching 异常。

2. Oracle BLOB/CLOB 字段本身拥有一个游标(cursor),JDBC通过游标对Blob/Clob字段进行操作,在Blob/Clob字段创建之前,无法获取其游标句柄,会出现
Connection reset by peer: socket write error 异常。

正确的做法是:首先创建一个空 Blob/Clob 字段,再从这个空 Blob/Clob字段获取游标,例如下面的代码:

 
PreparedStatement ps  =  conn.prepareStatement( " insert into PICTURE(image,resume) values(?,?) " );
 
//  通过oralce.sql.BLOB/CLOB.empty_lob()构造空Blob/Clob对象 
 ps.setBlob( 1 ,oracle.sql.BLOB.empty_lob());
ps.setClob( 
2 ,oracle.sql.CLOB.empty_lob());

ps.excuteUpdate();
ps.close();

 
//  再次对读出Blob/Clob句柄 
 ps  =  conn.prepareStatement( " select image,resume from PICTURE where id=? for update " );
ps.setInt( 
1 , 100 );

ResultSet rs  
=  ps.executeQuery();
rs.next();

oracle.sql.BLOB imgBlob  
=  (oracle.sql.BLOB)rs.getBlob( 1 );
oracle.sql.CLOB resClob  
=  (oracle.sql.CLOB)rs.getClob( 2 );

 
//  将二进制数据写入Blob 
 FileInputStream inStream  =   new  FileInputStream( " c://image.jpg " );
OutputStream outStream  
=  imgBlob.getBinaryOutputStream();

 
byte [] buf  =   new   byte [ 10240 ];
 
int  len;
 
while (len = inStream.read(buf) > 0 )  {
  outStream.write(buf, 
0 ,len);
}
 
inStream.close();
outStream.cloese();

 
//  将字符串写入Clob 
 resClob.putString( 1 , " this is a clob " );

 
//  再将Blob/Clob字段更新到数据库 
 ps  =  conn.prepareStatement( " update PICTURE set image=? and resume=? where id=? " );
ps.setBlob( 
1 ,imgBlob);
ps.setClob( 
2 ,resClob);
ps.setInt( 
3 , 100 );

ps.executeUpdate();
ps.close(); 
深入解析Xilinx IDELAYE2在FPGA时序优化中的关键作用与实战配置 本文深入解析了Xilinx FPGA中IDELAYE2模块在时序优化中的关键作用。作为精密的信号延时微调器,IDELAYE2通过可编程的抽头延迟,有效解决高速接口中数据与时钟的相位偏差问题。文章详细阐述了其必须与IDELAYCTRL配对使用的核心机制,并对比分析了FIXED、VARIABLE和VAR_LOAD三种工作模式的实战配置方法与代码示例,为FPGA工程师提供了解决时序收敛难题的关键硬件配置指南。 阅读详情

相关推荐

ARM的CI-700和Arteris的NoC对比

设计理念:CI-700注重于为移动和客户端SoC提供定制化的互连解决方案,而Arteris的NoC更侧重于提供灵活、可配置的网络互连技术,适用于多种应用场景。性能与功耗:CI-700通过系统级缓存和网状拓扑结构优化性能和功耗,而Arteris的NoC通过物理感知和多协议支持来提升性能和降低功耗。功能安全:Arteris的NoC提供了功能安全支持,这对于汽车和工业应用尤为重要,而CI-700虽然也关注安全性,但未明确提及功能安全支持。互操作性。

ygyglg的专栏 2626

二、Oracle 数据类型

一、Oracle 数值型 二、Oracle 字符型 三、Oracle 日期时间型

梦想成真 4539

802.11ax 的OFDMA资源分配详解

802.11ax 引入的最重要的技术就是OFDMA。OFDMA中引入了RU(资源块)概念,也就是20Mhz/40Mhz/80Mhz/160Mhz的带宽可以切割成不同尺寸的RU,分配给不同的用户使用,这样就大大提高了频谱资源的利用率。 常见的RU尺寸有26/52/102/242/484/996,单位是子载波,每个子载波是78.125Khz,这样20Mhz的带宽可以划分为如下图所示的不同RU大小。 按照11ax规范的要求,上下行的数据传输都可以由AP来统一调度,这样上下行的OFDM...

weixin_43408952的博客 1万+

oracle存储超长文本

一、Oracle中的varchar2类型 我们在Oracle数据库存储的字符数据一般是用VARCHAR2。VARCHAR2既分PL/SQL Data Types中的变量类型,也分Oracle Database中的字段类型,不同场景的最大长度不同。 在Oracle Database中,VARCHAR2 字段类型,最大值为4000(汉字2000);PL/SQL中 VARCHAR2 变量...

beidaol的专栏 2万+

5.1 Tessent Atpg系列 第八章 Test Pattern Generation - Verify Test Pattern

为什么要做基于timing的仿真,意义在于可以比较ATPG工具和simulator工具的差异性。因为时序的差异导致不同的结果。首先你需要通过write_patern 这句cmd来写出pattern,默认是parallel 模式,除非你用-serial 指定写出serial, 因为serial 文件非常大,所以你可以使用-sample 开关写出部分pattern即可,工具会根据每一种pattern 类型都会至少保存一只。 另外,你也可以使用-start -end 开关来减少文件大小,但是这样的截取,是不可靠的

ciscomonkey的博客 7766

[QT笔记]QTableView与QTableWidget表头设置实战对比

本文深入对比了QT开发中QTableView与QTableWidget在表头设置上的核心差异与实践方法。QTableWidget提供开箱即用的便捷API,适合快速开发;而QTableView遵循模型-视图架构,表头数据由模型管理,虽设置稍复杂但灵活性与扩展性更强。文章通过实战代码示例,详细解析了两种组件的适用场景、性能考量及常见避坑指南,帮助开发者根据项目需求做出高效选择。

weixin_29018335的博客 323

如果Oracle数据库中的字段大小超过4000,可以考虑使用CLOB或BLOB类型来存储文本或二进制数据。

clob类型和blob类型的使用

编程菜鸟的博客 3762

告别手动操作!用Python脚本批量处理Siemens NX零件文件(导入/导出/移除参数)

本文详细介绍了如何利用Python脚本实现Siemens NX零件文件的批量处理,包括导入、导出和移除参数等操作。通过NX Open API和Python UF接口,工业设计师可以大幅提升工作效率,告别繁琐的手动操作。文章提供了完整的实战指南,涵盖环境配置、核心功能实现以及性能优化技巧,特别适合需要进行Siemens-NXUG二次开发的工程师参考。

weixin_28222493的博客 261

【技术总结】关于Oracle大字段的问题及总结

Oracle大字段问题处理及总结

gxzsometime的博客 2076

Claude Skills:不是更聪明,而是更“像专家”的 Agent 养成方法

Claude Skills 不是在告诉 Agent“你能做什么”, 而是在约束它“你应该如何思考、如何判断、如何给结论”。

测试者家园 1296

肖特基二极管的反向恢复过程

本博客简述肖特基二极管反向恢复过程。

记得诚 1万+

oracle expep impep,imp/exp 導出導入含有CLOB,BLOB大字段的表出現問題解決辦法

如果你的表空間里有多個大字段的表,那么建議你最好使用Oracle最新的數據泵技術expep/impep,這個技術能很好的支持大數據字段(clob/blob)。那么如果你習慣使用imp/exp這種比較古老但是你順手的技術呢。這時依如下步驟即可解決。之后我們就要對單獨的頑固分子進行操作了。imp "'/ as sysdba'" indexes=y file=/exp_swserp.dmp fromu...

weixin_39621819的博客 604

26届数字IC秋招笔试面试全攻略 - CPU基础架构-数字IC设计专家

本文介绍了CPU基础架构的三大关键技术:流水线、冒险处理和指令集设计。首先解析了经典五级流水线结构(取指、译码、执行、访存、写回)及其性能指标。其次详细阐述了三种流水线冒险(数据、控制、结构)及解决方案,如数据前递、分支预测等。最后对比了RISC与CISC指令集特点,并以RISC-V为例说明指令格式设计原则。全文系统梳理了CPU核心架构知识,为数字IC设计提供重要参考。

2301_79143213的博客 931

Blob和Clob的区别和用法

BLOB和CLOB都是大字段类型, 1、BLOB是按二进制来存储的,通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。 2、CLOB是可以直接存储文字的,像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。 Oracle中处理BLOB/CLOB字段的方式比较特别,所以需要特别注意下面两点: 在Oracle JDBC中采用流...

farxix的博客 5282

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

oracle clob 写入mongo,【Oracle】Varchar2/Blob/Clob用法详解

数据库中提供了三种字段类型Varchar2、Blob和Clob用于存储字符串或二进制数据,其中Varchar2、Clob用于存储字符串数据,而Blob用于存储二进制数据。Varchar2采用单字节存储,有两个最大长度:一个是在字段类型4000;一个是在PL/SQL中变量类型32767。今天犯了一个小错误,就是函数的varchar2类型的返回值长度也是4000,而不是我以为的32767。Blob采用...

weixin_39904612的博客 218

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

clob mybatis_mybatis 处理CLOB/BLOB类型数据

BLOB和CLOB都是大字段类型。BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。文章或者是较长的文字,就用CLOB存储.BLOB和CLOB在不同的数据库中对应的类型也不一样:MySQL 中:clob对应text/longtext,blob对应blobOracle中:clob对应clob,blob对应bl...

weixin_39883208的博客 738

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mybatis没有clob类型_mybatis 处理CLOB/BLOB类型数据

BLOB和CLOB都是大字段类型。javaBLOB是按二进制来存储的,而CLOB是能够直接存储文字的。sql一般像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。文章或者是较长的文字,就用CLOB存储.数据库BLOB和CLOB在不一样的数据库中对应的类型也不同:MySQL 中:clob对应text/longtext,blob对应blobOracle中:clob对应clo...

weixin_39790168的博客 370

mybatis mysql clob_mybatis 处理CLOB/BLOB类型数据

BLOB和CLOB都是大字段类型。BLOB是按二进制来存储的,而CLOB是可以直接存储文字的。通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。文章或者是较长的文字,就用CLOB存储.BLOB和CLOB在不同的数据库中对应的类型也不一样:MySQL 中:clob对应text/longtext,blob对应blobOracle中:clob对应clob,blob对应bl...

weixin_39881575的博客 758

imp/exp 导出导入含有CLOB,BLOB大字段的表出现问题解决办法

首先。如果你的表空间里有多个大字段的表,那么建议你最好使用Oracle最新的数据泵技术expep/impep,这个技术能很好的支持大数据字段(clob/blob)。    那么如果你习惯使用imp/exp这种比较古老但是你顺手的技术呢。这时依如下步骤即可解决。    首先,使用我之前的文章导入除大数据外的其他所有表。参考:http://blog.youkuaiyun.com/kai27ks/art

236004的博客 2万+

oracle bolb字段显示为字符串

update 表明 a set a.blob字段 = tO_BLOB(UTL_RAW.CAST_TO_RAW(a.字符串字段))V_UPDATE CLOB := '更新的海量字符串';------大字段plsql中的插入和更新操作。---字符串更新到blob。

174

oracle的class12驱动没有实现jdbc对clob或blob的存储, 解决办法

在使用原生jdbc做保存大字段clob或者是blob时, 发生异常:ERROR [pool-12-thread-1] PartitionConsumerThread.run(128) | java.lang.AbstractMethodError: Method oraclebc/driver/T4CPreparedStatement.setCharacterStream(ILjava/io/Re...

weixin_33738982的博客 397

Java/JSP Oracle中的大字段存二进制/大文本

数据库中提供了两种字段类型 Blob 和 Clob 用于存储大型字符串或二进制数据(如图片)。 Blob 采用单字节存储,适合保存二进制数据,如图片文件。 Clob 采用多字节存储,适合保存大型文本数据。 Oracle中处理BLOB/CLOB字段的方式比较特别,所以需要特别

819
上一篇: Lucene中的各种Query实例
下一篇: 关于Java文件路径问题
nobody_java
博客等级 码龄20年 2粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值