Exécution de trigger génère une récursivité, ORA-00036
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:
1 2 3 4 5 6 7
|
CREATE SEQUENCE SEQ_region
START WITH 4
INCREMENT BY 1
NOCYCLE
NOCACHE;
COMMIT; |
Le trigger
Code:
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