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:
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
Voici mon bloc PL/SQL:
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;
Je n'arrive pas à voir ce qui cloche... Toute suggestion est la bienvenue !