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类型的字段中