Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3201 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème d'utilisation de REPLACE

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème d'utilisation de REPLACE

n°1935641
MaRTy59
Posté le 27-10-2009 à 11:37:27  profilanswer
 

Bonjour, je dois changer des codes dans ma base de données Oracle :
Je dois extraire les codes commençant par 02 et ayant une longueur de 4 et 6 caractères de la collectivité 59350,  
Une fois extrait je dois remplacer le 02 du début par 3 lettres, ici LVB. Le problème et qu'avec cette requête si par exemple un code à 4 caractère est '0202',
la requête va transformer en 'LVBLVB' or je veux que ce soit 'LVB02'.
La requête fonctionne pour les codes du type 02XX ou 02XXXX, X étant différent de '02' et compris entre 2 ou 4 caractères.
 
SELECT REPLACE (or.CODE, '02', 'LVB')
FROM ORGANIGRAMME or
WHERE or.COL = '59350'
AND SubStr(or.CODE, 1, 2) = '02'
AND (or.LGCODE = '4' OR or.LGCODE = '6')  
 
J'ai essayé dans la première ligne de mettre SELECT REPLACE (or.CODE, '02%', 'LVB') le pourcentage ici n'est pas pris comme dans l'expression LIKE. Donc voila je suis bien bloqué. Merci de votre aide.

mood
Publicité
Posté le 27-10-2009 à 11:37:27  profilanswer
 

n°1935645
casimimir
Posté le 27-10-2009 à 11:44:25  profilanswer
 

Code :
  1. SELECT 'LVB' || substr(OR.CODE,3,4000)
  2. FROM ORGANIGRAMME OR
  3. WHERE OR.COL = '59350'
  4. AND SubStr(OR.CODE, 1, 2) = '02'
  5. AND (OR.LGCODE = '4' OR OR.LGCODE = '6')


 
ps: perso j'éviterai d'appeler un alias OR

n°1935648
Tibar
Posté le 27-10-2009 à 11:48:51  profilanswer
 

Salut,
 
J'ai un exemple qui permet de faire ce que tu voudrais, ici je remplace le premier caractère d'un code postal par un autre sans utiliser de REPLACE :
SELECT ad.adr_cod_pos, '6' || substr(ad.adr_cod_pos, 2, length(ad.adr_cod_pos) - 1)
FROM adresse AD
WHERE AD.Adr_Cod_Pos LIKE '5%'
 
Si tu veux adapter, je pense qu'en faisant
 
SELECT or.CODE, 'LVB' || substr(or.CODE, 3, length(or.CODE) - 2)
FROM ORGANIGRAMME or
WHERE or.COL = '59350'
AND SubStr(or.CODE, 1, 2) = '02'
AND (or.LGCODE = '4' OR or.LGCODE = '6')  
 
Bon courage,

n°1935670
MaRTy59
Posté le 27-10-2009 à 13:32:00  profilanswer
 

Merci beaucoup à vous deux :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Problème d'utilisation de REPLACE

 

Sujets relatifs
[Resolu][SOAP][PHP] Utilisation des paramètresutilisation flèche du clavier
Problème avec boucle while qui ne s'arrêt pas[PHP] Include. Problème de mise en place.
Problème pour déclencher un input type=fileprobleme d'affichage javascript
iso8859-1 > UTF8 probleme avec a accent graveProblème:boite de dialogue alert() avec chrome+safari - [Résolu]
Servlets - Utilisation correcte ?[html] Problème sur un formulaire avec plusieurs boutons submit
Plus de sujets relatifs à : Problème d'utilisation de REPLACE


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR