Je suis en train de créer un déclencheur de mise à jour & avant d'insérer sur une table dans Oracle. Pendant que j'essaie de lire le NEW.CLOB_COLUMN_VALUE, il me donne un espace vide.Lecture CLOB dans avant l'insertion, déclencheur de mise à jour
Tableau:
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;
/
rapide après avoir essayé d'insérer:
ORA-20010: Testing Failed:[]
Est-il possible que nous pouvons lire le :NEW.TEST_CLOB_VALUE
avant insertion/mise à jour?
L'exigence est de valider les données de la colonne CLOB avant insertion/mise à jour.
Cela semble fonctionner très bien. - insérer un A réussit [A] ', insérer B obtient [échec [B]'. Vous n'avez pas montré l'instruction d'insertion que vous avez utilisée, quelle est la valeur réelle que vous essayez d'insérer? –
J'utilise toujours rowid pour ajouter des enregistrements. La requête d'insertion fonctionne très bien. : sélectionnez rowid, t1. * from Temp_Test101 t1 – pOrinG
Merci pour la réponse rapide et la correction. Lors de l'ajout à l'aide de rowid, l'invite affiche vide []. Toutefois, lors de l'utilisation de l'instruction insert, le déclencheur fonctionne correctement. – pOrinG