如何在 触发器 中 操作 BLOB 列 ?以下是我写的触发器功能是,当向本地数据库中"新闻表"(T_NEWS)中
插入数据前向远程的数据库插入相同的数据,
达到数据同步效果--------------------------------------------------
CREATE OR REPLACE TRIGGER "JLWEB"."/uXATMqarWBoz+c5E1c=865f4d96"
BEFORE
INSERT ON "T_NEWS" FOR EACH ROW BEGIN INSERT INTO "JLWEB"."T_NEWS"@"J865F4D96.SYN.US.ORACLE.COM" ("NEWSID","SORTID","NEWSMODIFDATE","NEWSTITLE","USERID","NEWSCONTENT")
VALUES(:NEW."NEWSID",:NEW."SORTID",:NEW."NEWSMODIFDATE",:NEW."NEWSTITLE",:NEW."USERID",:NEW."NEWSCONTENT");
EXCEPTION WHEN OTHERS
THEN
RAISE_APPLICATION_ERROR(-20008,'操作远程数据时出错. ' || SQLCODE||SUBSTR(SQLERRM,1,200)); END;
--------------------------------------------------但当我插入数据时ORACLE会出现异常ORA-20008: 操作远程数据时出错. -2068ORA-02068: 以下严重错误源于J865F4D96.SYN.US.ORACLE.COM
ORA-00600: 内部错误代码,参数: [kokegPinLob1], [], [], [], [], [], [], []
ORA-06512: 在"JLWEB./uXATMqarWBoz+c5E1c=865f4d96", line 1
ORA-04088: 触发器 'JLWEB./uXATMqarWBoz+c5E1c=865f4d96' 执行过程中出错
ORA-06512: 在line 1其中 "NEWSCONTENT" 列为 BLOB 型,如果插入时不插这一列就不出异常.希望高手帮忙解决下这个问题..
先谢了.
插入数据前向远程的数据库插入相同的数据,
达到数据同步效果--------------------------------------------------
CREATE OR REPLACE TRIGGER "JLWEB"."/uXATMqarWBoz+c5E1c=865f4d96"
BEFORE
INSERT ON "T_NEWS" FOR EACH ROW BEGIN INSERT INTO "JLWEB"."T_NEWS"@"J865F4D96.SYN.US.ORACLE.COM" ("NEWSID","SORTID","NEWSMODIFDATE","NEWSTITLE","USERID","NEWSCONTENT")
VALUES(:NEW."NEWSID",:NEW."SORTID",:NEW."NEWSMODIFDATE",:NEW."NEWSTITLE",:NEW."USERID",:NEW."NEWSCONTENT");
EXCEPTION WHEN OTHERS
THEN
RAISE_APPLICATION_ERROR(-20008,'操作远程数据时出错. ' || SQLCODE||SUBSTR(SQLERRM,1,200)); END;
--------------------------------------------------但当我插入数据时ORACLE会出现异常ORA-20008: 操作远程数据时出错. -2068ORA-02068: 以下严重错误源于J865F4D96.SYN.US.ORACLE.COM
ORA-00600: 内部错误代码,参数: [kokegPinLob1], [], [], [], [], [], [], []
ORA-06512: 在"JLWEB./uXATMqarWBoz+c5E1c=865f4d96", line 1
ORA-04088: 触发器 'JLWEB./uXATMqarWBoz+c5E1c=865f4d96' 执行过程中出错
ORA-06512: 在line 1其中 "NEWSCONTENT" 列为 BLOB 型,如果插入时不插这一列就不出异常.希望高手帮忙解决下这个问题..
先谢了.
create table bfile_tab (bfile_column BFILE);
create table t (blob_column BLOB);
----------------------------------------
declare
a_blob BLOB;
a_bfile BFILE := BFILENAME('UTLLOBDIR','BLOB文件名');
begin
insert into bfile_tab values (a_bfile)
returning bfile_column into a_bfile;
insert into t values (empty_blob())
returning blob_column into a_blob;
dbms_lob.fileopen(a_bfile);
dbms_lob.loadfromfile(a_blob, a_bfile, dbms_lob.getlength(a_bfile));
dbms_lob.fileclose(a_bfile);
commit;
end;
/
--这样可以插入一个blob数据。
是想将现在的BLOB列中的数据插入到另一个表的BLOB列中.
(见我写的触发器)
http://hi.baidu.com/blackeys/blog/item/c0cb3f38c06c8e24b9998f45.html,可能是这个原因。