Bonjour à tous,
J'ai un soucis avec la suppression d'une séquence au sein d'un bloc PL/SQL sur une base Oracle 9i.
Mon bloc PL/SQL doit ré-initialiser la valeur courante d'une séquence suite à un import dans une table de données.
Pour cela, je récupère l'id max dans la table, je drop la séquence pour la re-créer après. Or, à l'exécution du bloc PL/SQL dans sqlplus, l'erreur suivante m'est retournée:
Voici mon bloc PL/SQL:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PLS-00103: Symbole "DROP" rencontré à la place d'un des symboles suivants : begin case declare end exception exit for goto if loop mod null pragma raise return select update while with <an identifier> <a double-quoted delimited-identifier> <a bind variable> << close current delete fetch lock insert open rollback savepoint set sql execute commit forall merge <a single-quoted SQL string> pipe
Je n'arrive pas à voir ce qui cloche... Toute suggestion est la bienvenue !
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
23
24 DECLARE maxId NUMERIC; BEGIN -- Réinitialisation de la séquence MA_SEQUENCE SELECT MAX(ID) INTO maxId FROM MA_TABLE; maxId := maxId + 1; DBMS_OUTPUT.PUT_LINE('Max id = ' || maxId); DROP SEQUENCE MA_SEQUENCE; CREATE MA_SEQUENCE SEQUENCE_REQ_COLONNE START WITH maxId MAXVALUE 999999999999999999999999999 MINVALUE 0 NOCYCLE CACHE 20 NOORDER; END; / COMMIT;![]()
Partager