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 :
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;
Le trigger

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;
Erreurs générées
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