2

我正在尝试创建一个触发器,它将表中的 blob 复制到 tableB中新创建的行中AORA-22275但是,当应该执行触发器时,我收到错误(指定的 lob 定位器无效)。我可以想象我访问新行的 blob 的方式不是正确的方式,有人能指出我正确的方向吗?

触发器代码:

CREATE OR REPLACE TRIGGER COPY_BLOB
BEFORE INSERT ON TABLE_A
FOR EACH ROW
DECLARE
  src blob;
BEGIN
     SELECT bytes INTO src FROM table_b WHERE id = :new.ref_id; 
     DBMS_LOB.COPY(:new.bytes, src, DBMS_LOB.GETLENGTH(src), 1, 1);
END;
/
4

1 回答 1

1

你的触发器应该是:

SELECT bytes 
  INTO :new.bytes 
  FROM table_b 
 WHERE id = :new.ref_id;

根本不需要使用 DBMS_LOB 包。

于 2013-01-23T14:26:39.437 回答