Bonjour tout le monde,

Je souhaite mettre à jour mes séquences après avoir importer des données.
Pour cela, je procède comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
Declare
varmax integer;
req1 varchar(256);
req2 varchar(256);
begin
SELECT max(id_produit) INTO varmax FROM t1_produit;
varmax:= varmax-2;
req1:='alter sequence T1_PRODUIT_ID_PRODUIT_SEQ increment by ' || varmax || ';';
req2:='alter sequence T1_PRODUIT_ID_PRODUIT_SEQ increment by 1;';
execute immediate req1;
execute immediate req2;
end;
/
Ne connaissant pas trop le PL/SQL, j'ai du faire des erreurs de syntaxe car à l'exécution j'ai cette erreur :

Rapport d'erreur :
ORA-00911: caractère non valide
ORA-06512: à ligne 10
00911. 00000 - "invalid character"
*Cause: identifiers may not start with any ASCII character other than
letters and numbers. $#_ are also allowed after the first
character. Identifiers enclosed by doublequotes may contain
any character other than a doublequote. Alternative quotes
(q'#...#') cannot use spaces, tabs, or carriage returns as
delimiters. For all other contexts, consult the SQL Language
Reference Manual.
C'est certainement les || de cette ligne qui pose un problème:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
req1:='alter sequence T1_PRODUIT_ID_PRODUIT_SEQ increment by ' || varmax || ';';
Est-ce que quelqu'un peut m'éclaircir ?