Oracleの表に挿入前に&更新トリガーを作成しようとしています。 NEW.CLOB_COLUMN_VALUEを読み込もうとしていますが、空白になっています。挿入の前にCLOBを読み込み、トリガーを更新します
表:
CREATE TABLE TEMP_TEST101
(
ID NUMBER(2),
TEST_CLOB_VALUE CLOB
)
トリガー:
CREATE OR REPLACE TRIGGER TR_Temp_Test101
BEFORE INSERT OR UPDATE
ON Temp_Test101 FOR EACH ROW
DECLARE
BEGIN
If (:NEW.TEST_CLOB_VALUE = 'A')
Then
raise_application_error(-20010,'Testing Successfull');
End IF;
raise_application_error(-20010,'Testing Failed:['||:NEW.TEST_CLOB_VALUE||']');
END TR_Temp_Test101;
/
プロンプト挿入しようとした後:
ORA-20010: Testing Failed:[]
は、我々が更新/挿入する前に:NEW.TEST_CLOB_VALUE
を読むことができる任意の方法はありますか?
挿入/更新の前にCLOB列のデータを検証する必要があります。
正常に動作するようです。 - Aを挿入すると成功[A]、Bを挿入すると[失敗[B] 'になります。あなたは使用した挿入ステートメントを表示していません - 挿入しようとしている実際の値は何ですか? –
私は常にレコードを追加するためにROWIDを使用します..挿入クエリはうまく動作します。 :select rowid、t1。* Temp_Test101からt1 – pOrinG
迅速な返信と修正をありがとう。 ROWIDを使用して追加すると、プロンプトに空の[]が表示されます。しかし、insertステートメントを使用するとき、トリガーは正常に動作しています。 – pOrinG