我正在尝试创建一个触发器,它将表B
中的blob复制到表A
中新创建的行中。但是,当应该执行触发器时,我得到错误ORA-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;
/
答案 0 :(得分:1)
你的触发器应该是:
SELECT bytes
INTO :new.bytes
FROM table_b
WHERE id = :new.ref_id;
根本不需要使用DBMS_LOB包。