【已解决】oracle数据中,插入clob类型字段遇到的问题
2017-04-11 00:00
1236 查看
摘要: 在项目开发中,需要将xml文件内容存入到oracle数据库中,设置的字段类型为clob,在进行插入操作,发现当xml大小大于4k时,报错,String literal too long.....
varchar2 支持的最大长度为4000,当超过4000报错,查阅相关文章,提到clob类型可以存储4G大小。于是将对应表的字段设置成clob类型,clob可以直接像varchar类型一样直接插入,和读取。但是如果直接插入,默认当成varchar类型,限制长度为4000。
已有解决上述问题,使用的方法是:
declare
v_clob clob;
begin
v_clob = '需要插入的内容';
insert into t_table ('插入clob对应的字段') values(clob);
end ;
通过以上的方法,可以将内容直接插入进去了。很开心。。。。。
但是!但是!但是!重要事情说三遍, 还是遇到问题了,发现当xml文件大小>32k,会报PLS-00172,string literal too long,通过网上搜索,发现,PL SQL 支持最大长度为32k。找了n久,发现一种行之有效的方法,就是采用拼接方法(“||”),一个clob变量放置不超过32k大小内容。我的做法就是将xml文件内容分成多个clob,采用拼接"||",
declare
v_clob clob;
v_clob1 clob;
v_clob2 clob;
... ...
begin
v_clob = '< 32k 内容';
v_clob1 = '< 32k 内容';
v_clob2 = '< 32k 内容';
... ...
insert into t_table ('插入clob对应的字段') values(clob||clob1||clob2....);
end ;
对clob变量申明可以多个,赋值的时候也可由多个,在插入字段时候,使用 “||” 将上述变量拼接。
通过上述方法有效的解决了我遇到的问题,希望能够对你们有用。以上内容如有错误,欢迎指出。。。
varchar2 支持的最大长度为4000,当超过4000报错,查阅相关文章,提到clob类型可以存储4G大小。于是将对应表的字段设置成clob类型,clob可以直接像varchar类型一样直接插入,和读取。但是如果直接插入,默认当成varchar类型,限制长度为4000。
已有解决上述问题,使用的方法是:
declare
v_clob clob;
begin
v_clob = '需要插入的内容';
insert into t_table ('插入clob对应的字段') values(clob);
end ;
通过以上的方法,可以将内容直接插入进去了。很开心。。。。。
但是!但是!但是!重要事情说三遍, 还是遇到问题了,发现当xml文件大小>32k,会报PLS-00172,string literal too long,通过网上搜索,发现,PL SQL 支持最大长度为32k。找了n久,发现一种行之有效的方法,就是采用拼接方法(“||”),一个clob变量放置不超过32k大小内容。我的做法就是将xml文件内容分成多个clob,采用拼接"||",
declare
v_clob clob;
v_clob1 clob;
v_clob2 clob;
... ...
begin
v_clob = '< 32k 内容';
v_clob1 = '< 32k 内容';
v_clob2 = '< 32k 内容';
... ...
insert into t_table ('插入clob对应的字段') values(clob||clob1||clob2....);
end ;
对clob变量申明可以多个,赋值的时候也可由多个,在插入字段时候,使用 “||” 将上述变量拼接。
通过上述方法有效的解决了我遇到的问题,希望能够对你们有用。以上内容如有错误,欢迎指出。。。
相关文章推荐
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- hibernate在Oracle中插入数据,默认字段被设置为null的问题解决
- Oracle解决导入CLOB大字段数据失败的问题
- 关于EXP-00056: 遇到 ORACLE 错误 1455 ORA-01455: 转换列溢出整数数据类型 EXP-00000: 导出终止失败 的问题解决方法整理
- ORACLE当遇到“数据大小超出此类型的最大值”和“仅可以为插入 LONG 列的 LONG 值赋值”异常时的解决方法
- 关于oracle插入clob数据类型的问题
- 在plsql中,总是遇到在clob类型字段上存储数据出错--字符串太长,现在有一个比较简单的解决办法
- oracle导出含有Clob大数据字段类型的问题
- 批量插入Oracle,遇到CLob字段慢的解决办法
- NHibernate中Oracle字段类型Clob数据长度过大问题
- 解决在mybatis中使用CTE进行oracle查询数据类型为long的字段出现流关闭问题
- Oracle解决导入CLOB大字段数据失败的问题
- 使用java + oracle插入clob类型的数据
- oracle中Date类型字段数据插入格式
- 解决从pl/sql查看oracle的number(19)类型数据为科学计数法的问题
- 使用java + oracle插入clob类型的数据
- Oracle插入数据的乱码解决问题。
- VS2005+ACCESS2003开发中遇到的“标准表达式中数据类型不匹配”问题解决方法
- 解决通过identity字段关联的多个数据表插入问题
- ORACLE的ALL_VIEWS数据字典text字段long类型问题