Я пытаюсь создать перед вставкой & триггер обновления на столе в Oracle. Пока я пытаюсь прочитать NEW.CLOB_COLUMN_VALUE, он дает мне пустое.Чтение CLOB перед вставкой, триггер обновления
Таблица:
CREATE TABLE TEMP_TEST101
(
ID NUMBER(2),
TEST_CLOB_VALUE CLOB
)
Trigger:
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 получает [failed [B] '. Вы еще не указали инструкцию insert, которую вы использовали, - каково фактическое значение, которое вы пытаетесь вставить? –
Я всегда использую rowid для добавления записей. Вставка запроса работает нормально. : выберите rowid, t1. * from Temp_Test101 t1 – pOrinG
Спасибо за быстрый ответ и исправление. При добавлении с помощью rowid приглашение показывает empty []. Однако при использовании инструкции insert триггер работает правильно. – pOrinG