Clob的字段,我发现在不能用sql语句插入大于4000的字符 Clob的字段,我发现在不能用sql语句插入大于4000的字符。请问这种情况我应该怎么做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先用值empty_clob()插入新记录,然后再更新。lob对象实现成流,就可以不断向里面写入数据了。 的确是这样,如果你用.NET的话,可以其中OracleLob的方法OracleLob.Write()往里写数据。 1楼的,那个我看过了,不过能不能具体点?2楼的,我试过,但是好像不行,还是说字符串过长insert table1 (clobfield) values (empty_clob());update table1 set clobfield='[很长的字符串]';是这样的吗?3楼的,不是用.net,是要生成sql脚本。 upup不会把,这个问题不算什么高深问题吧,那位大哥来指点一下阿。 以为你要用.NET呢,用SQL操作LOB字段还真不知道怎么弄。 强烈关注,我也很郁闷这个呢。觉得LONG就是个废物,那么大的类型,结果insert时还要受4000字节的限制,和varchar有什么区别。搞不懂 测试通过先读出来再更新,col2 为clob类型字段declare locator_var CLOB; amount_var integer; offset_var integer; output_var varchar2(10); c_clob varchar2(1000);begin c_clob := '123456789123456789';amount_var :=length(c_clob); offset_var := 20; select col2 into locator_var from MOtest for update; dbms_lob.write(locator_var, amount_var, offset_var, c_clob);End; 强烈关注,我也很郁闷这个呢。觉得LONG就是个废物,那么大的类型,结果insert时还要受4000字节的限制,和varchar有什么区别。搞不懂--------------------------------------------------不是因为Long不能大于4000,是因为Oracle最多支持 4000长度的sql,因为你的内容多于4000,最终造成产生的Insert语句长于4000. to:楼上那我们最常用的不就是insert吗?如果insert不能超过4000,很多事不方便。 好久不来,居然还有人跟贴子。moqijun(百分比)正解。原理如下:对于CLOB字段: 1、插入记录,EMPTY_CLOB(),初始化字段。 2、获取CLOB字段指针,select into for update 或者利用insert 语句的return 选项获取。 3、加载数据,dbms_lob.WRITEAPPEND 以上为PL/SQL方法,各种语言实现思路一般也是获取指针,然后读文件写入数据, ORACLE的TIMESTAMP类型设置问题!! 面试时的一个sql问题 update 问题 请帮忙 谢谢了 2表的关联查询 ~~~~~~特高分~~~高手请进!!~~~~ 求助,各位SQL大神进来看看,谢谢谢谢。 哪位高手知道在oracle控制台怎么查看服务器库中表的操作用户? winxp下oracle9i客户端sqlplus无法启动,提示SP2-0750 的错误,大虾快进来看看,急死人了!!! oracle数据导入,导出问题 如何在Oracle Database Assistant中删除数据库? 一个关于sqlcode的问题? OCI编程问题
2楼的,我试过,但是好像不行,还是说字符串过长
insert table1 (clobfield) values (empty_clob());
update table1 set clobfield='[很长的字符串]';
是这样的吗?
3楼的,不是用.net,是要生成sql脚本。
不会把,这个问题不算什么高深问题吧,那位大哥来指点一下阿。
觉得LONG就是个废物,那么大的类型,结果insert时还要受4000字节的限制,和varchar有什么区别。搞不懂
先读出来再更新,col2 为clob类型字段declare
locator_var CLOB;
amount_var integer;
offset_var integer;
output_var varchar2(10);
c_clob varchar2(1000);
begin c_clob := '123456789123456789';
amount_var :=length(c_clob);
offset_var := 20;
select col2 into locator_var from MOtest for update;
dbms_lob.write(locator_var, amount_var, offset_var, c_clob);End;
觉得LONG就是个废物,那么大的类型,结果insert时还要受4000字节的限制,和varchar有什么区别。搞不懂
--------------------------------------------------
不是因为Long不能大于4000,是因为Oracle最多支持 4000长度的sql,
因为你的内容多于4000,最终造成产生的Insert语句长于4000.
那我们最常用的不就是insert吗?如果insert不能超过4000,很多事不方便。
moqijun(百分比)正解。
原理如下:对于CLOB字段:
1、插入记录,EMPTY_CLOB(),初始化字段。
2、获取CLOB字段指针,select into for update 或者利用insert 语句的return 选项获取。
3、加载数据,dbms_lob.WRITEAPPEND
以上为PL/SQL方法,各种语言实现思路一般也是获取指针,然后读文件写入数据,