Bonjour,
J'ai crée un trigger qui qui contient une séquence qui génère automatiquement la clé primaire et insert les données dans la table.
Le problème c'est que j'ai une erreur :
ORA-00036: maximum number of recursive SQL levels (50) exceeded
Le script de la séquence :
Le trigger
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE SEQUENCE SEQ_region START WITH 4 INCREMENT BY 1 NOCYCLE NOCACHE; COMMIT;
Erreurs générées
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 create or replace TRIGGER trg_BI_region BEFORE INSERT ON region FOR EACH ROW DECLARE v_username varchar2(20); BEGIN SELECT USER INTO v_username FROM dual; IF INSERTING THEN IF(:NEW.regionid IS NULL) THEN SELECT SEQ_region.NEXTVAL INTO :NEW.regionid FROM dual; END IF; INSERT INTO region(regionid, region_name, user_name, update_date) VALUES (:NEW.regionid, :NEW.region_name, v_username, TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHHMMSS')); END IF; IF UPDATING THEN UPDATE region SET user_name = v_username, update_date = TO_CHAR(SYSTIMESTAMP, 'YYYYMMDDHHMMSS'); END IF; END;
Connexion à la base de données Cnx_HRDBI1.
ORA-00036: maximum number of recursive SQL levels (50) exceeded
ORA-00036: maximum number of recursive SQL levels (50) exceeded
ORA-06512: at "HRDBI1.TRG_BI_REGION", line 5
ORA-04088: error during execution of trigger 'HRDBI1.TRG_BI_REGION'
ORA-06512: at "HRDBI1.TRG_BI_REGION", line 11
Partager