最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle批量更新表的大字段值

来源:动视网 责编:小采 时间:2020-11-09 12:09:34
文档

Oracle批量更新表的大字段值

Oracle批量更新表的大字段值:blob类型字段 1.前提 id=316083730656 的content字段有值update docs set content=Empty_Blob() where idlt;gt;316083730656 blob类型字段 1.前提 id=316083730656 的content字段有值update docs set conten
推荐度:
导读Oracle批量更新表的大字段值:blob类型字段 1.前提 id=316083730656 的content字段有值update docs set content=Empty_Blob() where idlt;gt;316083730656 blob类型字段 1.前提 id=316083730656 的content字段有值update docs set conten


blob类型字段 1.前提 id=316083730656 的content字段有值update docs set content=Empty_Blob() where idlt;gt;316083730656

blob类型字段
1.前提 id=316083730656 的content字段有值
update docs set content=Empty_Blob()
where id<>316083730656

Declare
src_Blob Blob;
v_Blob Blob;
Amount Binary_Integer;
Offset Integer;
cursor testCursor is
select content
from docs
where id<>316083730656 and format='.pdf'
for update ;
Begin
Select content Into src_Blob From docs Where Id = 316083730656 for update;
open testCursor;
loop
fetch testCursor into v_Blob ;
DBMS_LOB.OPEN(src_Blob, DBMS_LOB.LOB_READWRITE);
Dbms_Lob.Open(v_Blob, Dbms_Lob.Lob_Readwrite);
Amount := Lengthb(src_Blob);
Offset := 1;
Dbms_Lob.copy(v_Blob,src_Blob, Amount, Offset,Offset);
Dbms_Lob.Close(v_Blob);
Dbms_lob.close(src_Blob);
exit when testCursor%notfound;
end loop;
close testCursor;
End;

clob类型字段
1.前提 id=316688448842 的clob类型的Abstract字段字段有值
update docs set Abstract=Empty_clob()
where id <> 316688448842

declare
src_Clob Clob;
v_Clob Clob;
Amount Integer;
Offset Integer;
cursor testCursor is
select Abstract
from docs
where id<>316688448842
for update ;
Begin
Select Abstract Into src_Clob From docs Where Id = 316688448842 for update;
open testCursor;
loop
fetch testCursor into v_Clob ;
DBMS_LOB.OPEN(src_Clob, DBMS_LOB.LOB_READWRITE);
Dbms_Lob.Open(v_Clob, Dbms_Lob.Lob_Readwrite);

Dbms_Lob.append(v_Clob,src_Clob);
Dbms_Lob.Close(v_Clob);
Dbms_lob.close(src_Clob);
exit when testCursor%notfound;
end loop;
close testCursor;
End;

注意。前面的update语句一定要先执行。要不再做批量更新的时候会提示错误的。

这里更新的值为同一个值可以在循环的时候获取不同的值来进行更新。

文档

Oracle批量更新表的大字段值

Oracle批量更新表的大字段值:blob类型字段 1.前提 id=316083730656 的content字段有值update docs set content=Empty_Blob() where idlt;gt;316083730656 blob类型字段 1.前提 id=316083730656 的content字段有值update docs set conten
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top