|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2007 Messages : 95 ![]() |
Bonjour,
je voudrais savoir s'il est possible d'indiquer un format de données dans la déclaration d'une séquence (avec une concaténation ?) ? Concrètement, je souhaiterai générer un identifiant qui donnerait automatiquement les valeurs suivantes : 0001 0002 0003 ... Et question complémentaire, est-ce possible d'y ajouter un préfixe, par exemple : A0001 A0002 A0003 ? Merci d'avance pour vos lumières ! |
|
|
00
|
|
|
#2 | |
|
Membre éprouvé
![]() Inscription : juillet 2006 Messages : 445 ![]() |
Bonjour,
Une séquence est : Citation:
|
|
|
|
00
|
|
|
#3 | ||||
![]() ![]() ![]() Inscription : mai 2003 Messages : 6 533 ![]() |
Absolument:
Code :
Code :
__________________
Rédacteur Oracle (Oracle ACE) Guide Oracle ,Guide PL/SQL, Guide Forms 9i/10g, Index de recherche Je ne réponds pas aux questions techniques par MP Blogs: Forms-PL/SQL-J2EE - Forms Java Beans |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
lpad plutôt non ?
|
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 450 ![]() |
Non, ltrim pour supprimer les espaces superflus, c'est le to_char qui fait le lpad automatiquement grâce aux 0
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
ha oui... alors le LTRIM est inutile sur la séquence si je ne m'abuse
|
|
|
00
|
|
|
#7 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2007 Messages : 95 ![]() |
Merci beaucoup pour vos réponses.
Les 2 requêtes sont super ! Il reste un petit détail, un espace s'ajoute en début de la chaine générée : 001 002 C'est plus génant pour la 2ème requête, on obtient : A 001 A 002 Une idée ? |
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
pourtant LTRIM devrait régler ce problème
![]() Eventuellement tu peux faire un REPLACE pour supprimer les espaces |
|
|
00
|
|
|
#9 | |||
|
Membre Expert
![]() Inscription : avril 2005 Messages : 1 672 ![]() |
Citation:
En 10gR1 : Code :
__________________
Modérateur des forums Oracle et Langage SQL Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum |
|||
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Inscription : janvier 2007 Messages : 95 ![]() |
Youpi j'ai trouvé!
LTRIM n'était pas placé au bon endroit. Pour enlever l'espace en début de chaine, il faut modifier ces 2 requêtes de cette façon: Code :
SELECT ltrim(to_char(ma_sequence.NEXTVAL, '000')) FROM DUAL; Code :
SELECT 'A' || ltrim(to_char(ma_sequence.NEXTVAL, '000')) FROM DUAL; (c'est vraiment puissant ce qu'on peut faire avec seulement qques instructions!) |
|
|
00
|
|
|
#11 | |
|
Nouveau Membre du Club
![]() Inscription : janvier 2007 Messages : 95 ![]() |
Citation:
Merci |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com