Essayez le code ci-dessous pour votre déclencheur. Veuillez noter que vous pouvez utiliser :new
et :old
uniquement pour les colonnes de la table GORADID
lorsque vous écrivez le déclencheur ON GORADID.
Vous sélectionnez USER INTO SZRGORA_AUDIT_USER_BANNER_ID
. Donc, vous devriez utiliser SZRGORA_AUDIT_USER_BANNER_ID
dans vos prochaines requêtes au lieu de dire USER
. Dire directement USERNAME = USER
ne fonctionnera pas je pense.
CREATE OR REPLACE TRIGGER AUDIT_USER.GORADID_UPDT_TRG1
AFTER UPDATE OF GORADID_ADDITIONAL_ID
ON GORADID
FOR EACH ROW
DECLARE
v_SZRGORA_AUDIT_USER_BANNER_ID VARCHAR2(150 CHAR);
v_SZRGORA_AUDIT_STUDENT_BANNER VARCHAR2(9 CHAR);
v_SZRGORA_AUDIT_USER_FIRST_NAME VARCHAR2(150 CHAR);
v_SZRGORA_AUDIT_USER_LAST_NAME VARCHAR2(150 CHAR);
BEGIN
SELECT USER INTO v_SZRGORA_AUDIT_USER_BANNER_ID FROM DUAL;
SELECT SPRIDEN_ID
INTO v_SZRGORA_AUDIT_STUDENT_BANNER
FROM SATURN.SPRIDEN
WHERE SPRIDEN_PIDM = :new.GORADID_PIDM
AND GORADID_ADDITIONAL_ID = :new.GORADID_ADDITIONAL_ID;
SELECT SPRIDEN_FIRST_NAME, SPRIDEN_LAST_NAME
INTO v_SZRGORA_AUDIT_USER_FIRST_NAME, v_SZRGORA_AUDIT_USER_LAST_NAME
FROM SATURN.SPRIDEN
WHERE SPRIDEN_PIDM =
(SELECT PIDM FROM SATURN.IDM_STAFF_AFF_ST
WHERE USERNAME = v_SZRGORA_AUDIT_USER_BANNER_ID);
INSERT INTO AUDIT_USER.SZRGORA_AUDIT VALUES
(v_SZRGORA_AUDIT_STUDENT_BANNER,
:new.GORADID_ADDITIONAL_ID,
:old.GORADID_ADDITIONAL_ID,
v_SZRGORA_AUDIT_USER_FIRST_NAME,
v_SZRGORA_AUDIT_USER_LAST_NAME,
v_SZRGORA_AUDIT_USER_BANNER_ID,
'UPDATE',
SYSDATE,
:new.GORADID_SURROGATE_ID,
:new.GORADID_VERSION,
:new.GORADID_VPDI_CODE);
END;
/
Pouvez-vous poster l'erreur réelle que vous recevez et structure de la table des GORADID – XING
@XING - Les problèmes ne sont pas avec GORADID. C'est la 2ème table (SPRIDEN), où j'essaie de sélectionner des données. Veuillez noter que je peux insérer des données de GORADID avec succès. –
Veuillez ajouter une structure pour la table 'SPRIDEN' et' SZRGORA_AUDIT'. –