Bonjour,
Je veux créer une séquence sur une table et un trigger pour gérer un auto-incrément de l'ID de cette même table.
Voici le code que j'utilise pour la création de ma séquence (sachant que j'ai déjà rempli ma table avec des données et des ID pré-existants) :
En retour j'ai le droit à une belle erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 var v_MaxVal NUMBER; declare v_SqlStmt VARCHAR(255); v_Cursor INTEGER; begin v_Cursor := dbms_sql.open_cursor; select NVL(max(ID_DIPOLE),0) + 1 into :v_MaxVal from BT_DIPOLE_BT_TMP2; v_SqlStmt := 'create sequence SEQ_DIPOLE_BT_TMP2; start with ' || to_char(:v_MaxVal); dbms_sql.parse( v_Cursor, v_SqlStmt, dbms_sql.native ); dbms_sql.close_cursor( v_Cursor ); end;
Je me suis inspiré d'un code généré par un outil d'import de donnée qui marche très bien..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 declare * ERREUR Ó la ligne 1 : ORA-00911: caractÞre non valide ORA-06512: Ó "SYS.DBMS_SYS_SQL", ligne 906 ORA-06512: Ó "SYS.DBMS_SQL", ligne 39 ORA-06512: Ó ligne 8
Si quelqu'un à une idée du pourquoi du comment de ce message de bienvenue cela serait très très sympa!!
Partager