• 主页
  • Oracle 基础和管理
  • Oracle 高级技术
  • Oracle 认证与考试
  • 职位交流

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

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

有什么办法可以解决?


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


...全文
146 点赞 收藏 5
写回复
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
回复 点赞
发动态
发帖子
Oracle
创建于2007-09-28

6410

社区成员

5.4w+

社区内容

Oracle开发相关技术讨论
社区公告
暂无公告