Bonjour à tous,

Petite question pure SQL

J'ai du code avec des cursor partout..! Et ceci peuvent être remplacés par des case when et d'autre choses plus performantes.


Cependant je me pose la question sur l'incrémentation d'un champs,
je sais qu'il existe un auto incrément, mais dans mon cas ça n'irait pas.

Car l'id n'est pas un NUMBER mais un varchar (Me demandais pas pk! ) ex : FIC0000000000000020135
Et qu'il est définie de cette manière :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
     select   max(P_ID)
     INTO    V_P_NUM 
     from    P
     where  P_ID like 'FIC%';
   

Cursor..

V_P_NUM := V_P_NUM + 1;
V_P_ID := substr('FIC000000000000000000000000000', 1, 30 - length(to_char(V_P_NUM))) || to_char(V_P_NUM);

End cursor
Comment je peux créer cette incrémentation sans le curseur?

Merci d'avance!