insert时,对于blob, 一定要使用empty_blob吗?

iq199 2008-07-29 05:00:59
insert into mytable (id, data) values (1, empty_blob());
写成
insert into mytable (id, data) values (1, null);
会有什么问题? 为什么要用empty_blob?
...全文
1369 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
TangWei_520 2011-08-24
  • 打赏
  • 举报
回复
用PHP怎么给Clob添加值呢 ?
njhart2003 2008-07-29
  • 打赏
  • 举报
回复
insert 语句中的empty_blob()可以返回一个blob指针,为后面插入blob内容做准备的。

对于blob是否可以直接插入二进制变量值,我没做过试验;
但对于clob我做过,可以直接象varchar2变量一样处理,如:
insert into mytable (id, data) values (1, '... clob文字内容 ...');

oracledbalgtu 2008-07-29
  • 打赏
  • 举报
回复
看你是如何来使用blob字段的了。
单纯的dml操作,不会有任何问题。
如果是plsql中或者是oci中操作blob列,有些方法需要blob列不能为null,否则报ORA-01405错误。
所以习惯上一般用empty_blob()和empty_clob()来初始化clob列。
为了方便,其实你可以这么定义表:
create table ttt
(b_col blob default empty_blob(),
....
);


[Quote=引用楼主 iq199 的帖子:]
insert into mytable (id, data) values (1, empty_blob());
写成
insert into mytable (id, data) values (1, null);
会有什么问题? 为什么要用empty_blob?
[/Quote]
njhart2003 2008-07-29
  • 打赏
  • 举报
回复
插入 LOB

要使用 INSERT 插入一个内部 LOB,首先需要使用相应的 Oracle EMPTY_BLOB 函数来初始化 LOB,你无法更新一个包含 NULL 值的 LOB。

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧