使用SQL语句向Oracle.8.1.7的Blob字段插入较长16进制编码字符串的问题

rustle 2003-09-18 03:52:46
报错ORA-01704:文字字符串过长

有什么办法可以解决?


INSERT INTO AAAA (BlobField) values ('FFEEABEDC123237834872387437FFE........EFDABE')


...全文
281 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beckhambobo 2003-09-18
  • 打赏
  • 举报
回复
CREATE OR REPLACE PROCEDURE Example_1a IS
dest_lob BLOB;
src_lob BLOB;
BEGIN
-- get the LOB locators
-- note that the FOR UPDATE clause locks the row
SELECT b_lob INTO dest_lob
FROM lob_table
WHERE key_value = 12 FOR UPDATE;
SELECT b_lob INTO src_lob
FROM lob_table
WHERE key_value = 21;
DBMS_LOB.APPEND(dest_lob, src_lob);
COMMIT;
EXCEPTION
WHEN some_exception
THEN handle_exception;
END;

CREATE OR REPLACE PROCEDURE Example_1b IS
dest_lob, src_lob BLOB;
BEGIN
-- get the LOB locators
-- note that the FOR UPDATE clause locks the row
SELECT b_lob INTO dest_lob
FROM lob_table
WHERE key_value = 12 FOR UPDATE;
SELECT b_lob INTO src_lob
FROM lob_table
WHERE key_value = 12;
DBMS_LOB.APPEND(dest_lob, src_lob);
COMMIT;
EXCEPTION
WHEN some_exception
THEN handle_exception;
END;

LGQDUCKY 2003-09-18
  • 打赏
  • 举报
回复
PL/SQL的DBM_BLOB来处理
Drate 2003-09-18
  • 打赏
  • 举报
回复
如果是BLOB字段,在ORACLE中手动更新是非常麻烦的
一般都是通过第三方应用程序来更新它的内容的了,如用DELPHI、PB编写的前台程序来更新
如果要在SQL中更新的话,要用ORACLE自带的脚本了
qiuyang_wang 2003-09-18
  • 打赏
  • 举报
回复
在客户端:
对于clob,blob型字段,不能直接使用INSERT的,但可先INSERT一个空记录,然后使用UPDATE。
如果你使用的是PB,则可以使用:UPDATEBLOB...
要注意:可以直接使用:INSERT INTO .. SELECT ....语句。
在服务器端,可以直接插入数据,但字符串的长度是有限制的,如果需要写入太大的字符串,可以调用ORACLE提供的DBM_BLOB包的有关功能。
tcmis 2003-09-18
  • 打赏
  • 举报
回复
http://fengyu.china.com/clob.htm

17,090

社区成员

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

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