|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre habitué
![]() Inscription : janvier 2008 Messages : 212 ![]() |
Je suis habitué à MS SQL Server mais pas du tout en DB2/400.
Je dois faire une requête permettant de formatter correctement des adresses. Exemple : "R DU POMMIER" doit devenirr "RUE DU POMMIER" J'ai un SELECT de ce genre Code :
Si je fait Code :
Merci pour votre aide. |
||||
|
|
00
|
|
|
#2 | ||
|
Membre éclairé
![]() Benoit Boulc'h Développeur informatique Inscription : février 2009 Messages : 240 ![]() |
Bonjour,
Il faudrait essayer la syntaxe suivante : Code :
ben |
||
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : janvier 2008 Messages : 212 ![]() |
çà ne marche pas.
le | n'est pas accepté au niveau de la syntaxe. J'ai essayé l'alternative suivante Code :
CONCAT('RUE',RIGHT(MauvaiseAdresse,LENGTH(PBADDR)-1)) Notre version de l'AS/400 est V6/R1 |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 630 ![]() |
Bonjour,
C'est quoi votre OS ? Sinon pourriez vous mettre la requête avec le concat qui plante + le code sql d'erreur svp ? |
|
|
00
|
|
|
#5 |
|
Membre chevronné
![]() Administrateur de base de données Inscription : octobre 2006 Messages : 502 ![]() |
Bonjour
attention aux format de colonne et aux données. si la colonne est en CHAR, la dernière requête donne une chaine à insérer trop longue de 2 caractères. La sqlcode est très utile pour debug. |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 630 ![]() |
En v5R4 votre synthax initial marche très bien.
Sinon le concat c'est le double pipe qui le remplace. Votre requête est-elle tel quel ? car la position 37 renvoie nul part de précis. sur quel mot sql le moteur bloque en fait ? |
|
|
00
|
|
|
#7 | ||
|
Membre habitué
![]() Inscription : janvier 2008 Messages : 212 ![]() |
La dernière version de mon code :
Code :
SQL0362: Le marquage a détecté une erreur dans l'instruction SQL actuelle. SQL State: 0168I Vendor Code: 362 Message: [SQL0362] Le marquage a détecté une erreur dans l'instruction SQL actuelle. Cause . . . . . : Syntaxe de l'instruction SQL non conforme à la norme à la position 50. Que faire . . . : Consultez les messages antérieurs dans l'historique du travail pour une description plus complète de l'erreur. Si la conformité à la norme est nécessaire, modifiez l'instruction en conséquence et renouvelez la demande. 0 rows were affected by the statement Statement ran successfully, with warnings (0 ms) |
||
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 630 ![]() |
En dehors de la remarque pertinente de bernard59139, comment lancez-vous cette requête ?
Je viens de tester votre syntaxe en v6R1 via un STRSQL ca marche bien. Sinon, essayez de mettre un espace après vos virgule, j'ai déjà eu ce problème quand je lançais une requête via un CL (mais bon je ne penses pas que ce soit ca ..) |
|
|
00
|
|
|
#9 | ||||
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Code :
Code :
|
||||
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Inscription : janvier 2008 Messages : 212 ![]() |
Et bien, il s'agissait tout simplement d'un problème de service pack !.
Dès qule le service pack a été installé, tout est passé comme une lettre à la poste (et comme je m'occupe de formattage d'adresse...) Merci à tous pour l'aide fournie. J'en ai ainsi appris un peu plus sur DB2. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com