Est-il possible d'automatiser la création d'une séquence sur un CREATE TABLE.
Je suis débutant sur PL SQL et je m'interesse aux triggers...
Merci de vos réponses.
Est-il possible d'automatiser la création d'une séquence sur un CREATE TABLE.
Je suis débutant sur PL SQL et je m'interesse aux triggers...
Merci de vos réponses.
Bonjour,
Que veux tu faire exactement ?
techniquement Oui , c'est possible de creer automatiquement une sequence
Sinon ,un trigger ca doit etre quelque chose d'exceptionnel et non systematique ...
c'est source d'erreur,de blocage, de bug
moins on en crée , mieux la base se portera.
On peut inserer dans une table avec sequence sans trigger ...
Ce que je veux faire c'est automatiser l'incrémentation de l'identifiant à la création d'une table. C'est vrai que je suis un peu flemmard... Non sans rire, je suis en formationj et j'ai fini le programme sur oracle alors je cherche par moi même. Je ne cherche pas des solutions toutes faites mais des pistes.![]()
Quand j'essaye jusqu'à maintenant de créer une séquence à partir d'un trigger basé sur un évènement système, j'obtiens une erreur à chaque fois, je cherche donc une piste pour contourner cette erreur.
VOICI LE TRIGGER QUE JE VOUDRAIS REALISER :
CA COMPILE BIEN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE OR REPLACE TRIGGER "TRIGGER1" AFTER CREATE ON USER1.SCHEMA DECLARE LOC VARCHAR2(200); BEGIN IF ORA_DICT_OBJ_TYPE = 'TABLE' THEN LOC := 'CREATE SEQUENCE "SEQUENCE_"'||ora_dict_obj_name||' INCREMENT BY 1 START WITH 1'; EXECUTE IMMEDIATE LOC; END IF; END;
TRIGGER "TRIGGER1" Compiled.
MAIS A L'UTILISATION :
Error starting at line 1 in command:
CREATE TABLE TOTOS (ID_TOTO NUMBER, AZER VARCHAR2(50), CONSTRAINT PK_TOTOS PRIMARY KEY (ID_TOTO))
Error at Command Line:1 Column:0
Error report:
SQL Error: ORA-00604: une erreur s'est produite au niveau SQL récursif 1
ORA-30511: opération DDL non valide pour les déclencheurs système
COMMENT CONTOURNER LE PROBLEME, OU BIEN MON CODE COMPORTE-T-IL UNE ERREUR?
Partager