|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 403 ![]() |
Bonjour,
est ce que quelqu'un peut m'expliquer comment comparer 2 chaines de caracteres dans une procedure plsql. Je m'explique: dans la table VALEUR j'ai un champ NOMS ce champ contient des noms separés par une virgule: enregistrement n1, VALEUR.NOMS = 'titi 1,toto,tata' enregistrement n2, VALEUR.NOMS = 'toto,tutu,titi2' je voudrais comparer VALEUR.NOMS afin d'inserer dans n2 les noms titi 2 et tata j'ai tenté quelque chose avec la fonction INSTR( chaîne, sous-chaîne [, début [,nombre occurrences] ] ) pour trouver la ',' mais je ne sais pas comment iterer sur la chaine jusqu'a ce que toutes les sous chaine soient traitées. si quelqu'un a une solution elle est la bienvenue merci |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Déjà j'ai l'impression que le modéle n'est pas bon, parce que mettre plusieurs noms ainsi dans une colonne c'est très dommage
Ensuite t'es pas dans le forum Oracle, c'est encore plus dommage Enfin, tu peux mettre la valeur de la sous chaine depuis la 1° virgule + 1 jusqu'à la fin dans une variable et si il n'y a pas de virgule dedans tu arrêtes, sinon tu extraits le 1° mot de la chaine et ainsi de suite |
|
|
00
|
|
|
#3 | |||
![]() ![]() Gilles ROUARDAdministrateur de base de données Inscription : mars 2003 Messages : 220 ![]() |
Je n'ai pas de solution à te donner. Par contre, sache que le package DBMS_UTILITY t'offre entre autre une procédure qui s'appelle comma_to_table et qui permet d'analyser une chaîne de caractères contenant plusieurs valeurs séparées par des virgules (ce qui est ton cas) et qui fournit en retour une collection.
Il serait alors peut-être plus facile pour toi de travailler sur des collections. Voici un exemple des procédures comma_to_table et table_to_comma. Code :
Citation:
|
|||
|
|
00
|
|
|
#4 |
|
Membre éclairé
![]() Inscription : août 2004 Messages : 403 ![]() |
Merci beaucoup pour les reponses je pense que l'utilisation de DBMS_UTILITY est exactement ce qu'il me fallait.
par contre orafrance tu me dis que je ne suis pas dans le forum Oracle, je suis dans lequel ? Que je ne me goure pas la prochaine fois encore merci |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com