maj sql as400

xxxx
Invité n'ayant pas de compte PHPfrance

11 mars 2006, 11:28

bonjour
je souhaite faire une MAJ d'une partie d'une zone par SQL
qq'un aurait 'il une solution rapide ..moi je suis partie dans une requete complexe

j'ai un fichier client, une zone numero de client d'une longueur de 20 char
je voudrai modifier 3 cararcteres au milieu

Ex : nom fichier : Client
nom zone : Nocli = 'Paris001xxxxxxxxxxxx'

Je voudrais modifier 001 par 999

J'ai essaye l'instuction suivante
update client set '999' substr(nocli, 6,3) where substr(nocli, 6,3)

mais je me retrouve avec juste '999' en resultat

merci de votre aide
[email protected]

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

11 mars 2006, 12:45

Donc tu bosses sur un AS/400 et ta base n'est pas normalisée, intéressant.

Je t'expliquerais bien qu'un numéro de client n'est pas sensé être modifiable, que cela viole la loi de Codd 412-b alinéa 13 et que la réponse se trouve dans le manuel MySQL à la page 53, mais j'ai le sentiment que ça ne t'intéresserais pas. Si toutefois ce n'était pas le cas, n'hésite pas à le dire, on essaiera de te trouver quelques liens.

Donc pour en revenir à ton problème, que souhaites-tu réellement faire ? Tu pourrais utiliser INSTR() pour insérer 999 dans n'importe quelle chaîne, mais quelque chose me dit que tous les "nocli" ne commencent pas par "Paris" n'est-ce pas ? Auquel cas, je doute même que cela soit réalisable avec une simple requête. N'oublie pas de préciser ta version de MySQL.