oracle 导出超长Clob字段insert语句执行报字段过长的问题解决方案

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 导出超长Clob字段insert语句执行报字段过长的问题解决方案相关的知识,希望对你有一定的参考价值。

参考技术A 对于长度小于4000的字符串直接执行insert语句正常,但对于超过4000的就不能直接执行了,会报字符串长度过长的错。

通过一阵百度,我认可网上的这个说法:隐式转换,oracle默认把字符串转换成varchar2类型,而这个字符串的长度,又比4000大,所以会报ora-01704错误。说得通俗一点,就是两个单引号之间的字符不能超过4000。

解决方案,对于过长的sql定义一个Clob变量,然后在sql中直接引用这个变量即可:

注意的是:如果只执行单条语句,最后的 "/" 符号 可以不加,如果后面还有DECLARE语句,"/"符号必须要加上。

使用这种方式,亲测通过,祝好运!

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字段insert语句执行报字段过长的问题解决方案的主要内容,如果未能解决你的问题,请参考以下文章

oracle 10G数据库如何插入clob字段的值的简单语句sql语句

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

oracle 超长字符串连接问题

navicat导出insert语句能限制字段嘛

oracle中将几个字段拼接成超长字符串(超过4000字节)更新到lob字段中,怎么处理?

oracle更新clob字段的问题