怎么把二进制流插入oracle的clob字段

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把二进制流插入oracle的clob字段相关的知识,希望对你有一定的参考价值。

常规方式:

1、写入

[java] view plain copy
//value 为长文本,将写入到CLOB字段中
else if (dataType == Types.CLOB)
if (StringUtils.isNotBlank(value))
pst.setCharacterStream(1, new InputStreamReader(<span style="white-space:pre"> </span>//以流的方式写入
new ByteArrayInputStream(value.getBytes())), value.length());
else
pst.setNull(1, java.sql.Types.CLOB);



2、读取:
[java] view plain copy
//...省略基础部分
ps = conn.prepareStatement(sql);
ps.setString(1, templateId);
rs = ps.executeQuery();
if (rs.next())
Clob clob = rs.getClob(1);
if (clob != null)
String config = clob.getSubString(1, (int) clob.length()); //config为读取到的clob信息

//...

本次的简易方式(以纯脚本的方式写入):

[sql] view plain copy
insert tablename(varcharcolumn,clobcolumn)
values('string part',to_clob('clob chars part1 ')||to_clob('clob chars part2'));

小结:
纯脚本的方式即显式的通过TO_CLOB将字符转为clob类型,每个转换的参数不能超过2000个字符,多个部分通过连接符 || 连接,测试通过,数据已入库,感谢牛人指点。
参考技术A 在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。 下面是对lob数据类型的简单介绍。 blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。 clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。 参考技术B 在oracle中,有4个大对象(lobs)类型可用,分别是blob,clob,bfile,nclob。 下面是对lob数据类型的简单介绍。 blob:二进制lob,为二进制数据,最长可达4GB,存贮在数据库中。 clob:字符lob,字符数据,最长可以达到4GB,存贮在数据库中。

oracle中 怎么把字符串的数据insert 到 clob类型的字段中

参考技术A 你的问题是不是在问如何操作Oracle的CLOB类型,如下文的官方文档资料说明,在Pro*C/C++程序中可以通过三种方式操作它。当然,每种方式都对应不同的一系列对CLOB字段的操作方法。
How to Use LOBs in Your Program
Three Ways to Access LOBs
The three methods available to access LOBs in Pro*C/C++ are:
 1.The DBMS_LOB package inside PL/SQL blocks.
 2.OCI (Oracle Call Interface) function calls.
 3.Embedded SQL statements.本回答被提问者采纳
参考技术B 不能直接insert clob字段,必须用程序处理,或者exp/imp。 参考技术C 直接insert有什么问题么?比如t1 只有一个字段 clob类型
insert into t1 values ('test')

以上是关于怎么把二进制流插入oracle的clob字段的主要内容,如果未能解决你的问题,请参考以下文章

Oracle35BLOB字段和CLOB字段

oracle如何导出具有clob字段类型的sql?

oracle 某个表的字段里面的值是<clob>是啥意思

求助oracle高手,将varchar类型数据插入到blob类型字段中

Oracle中的BLOB和CLOB字段类型的区别

如何在oracle中的blob字段下读取jpg格式文件保存