2

Btable から blob を tableの新しく作成された行にコピーするトリガーを作成しようとしていますA。ただし、ORA-22275トリガーが実行されるはずのときにエラー (指定されたロブ ロケーターが無効です) が発生します。新しい行のブロブにアクセスする方法が正しい方法ではないことを想像できます。誰かが私を正しい方向に向けることができますか?

トリガーのコード:

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 に答える