Numéric-->Chaine de caractère - SQL/NoSQL - Programmation
Marsh Posté le 15-05-2003 à 10:24:54
Je ne suis pas un expoert, mais je ne pense pas qu'il existe de cast dans un sgbd...
Après, selon le langage qui exploite ta base, tu peux caster d'entier à string... Faut que développes un peu ton problème
Marsh Posté le 15-05-2003 à 10:58:28
En fait je dois sélectionner des enregistrements présents dans une tables lorsque les éléments d'une autre tables concordent avec ceux de la première tables.
Le problème est que la clé primaire de la première table est un numéric et la clé primaire de la seconde table est une chaine de caractères.
Je ne peux donc pas faire de jointure sur les clés primaires.
Marsh Posté le 15-05-2003 à 11:19:26
C'est koi komme SGBD?
Marsh Posté le 15-05-2003 à 11:29:03
je connais pas db2, mais j'ai trouvé ca :
http://wwwlsi.supelec.fr/www/yb/po [...] 40.html#50
Marsh Posté le 15-05-2003 à 11:32:59
sisi c'est possible mais je ne sais plus comment ca fonctionne. C'est une seule bete instruction il me semble (pour SQL en tout cas)
tu devrais trouver ca facilement sur le net
Marsh Posté le 15-05-2003 à 11:40:38
ça n'a pas l'air de marcher sous DB2!
Dommage!
Merci qd même
Est-ce que vous auriez d'autres solutions possibles?
Marsh Posté le 15-05-2003 à 14:13:48
TO_CHAR ca marche pas ?
C'est pas sous la norme SQL db2 ?
Marsh Posté le 15-05-2003 à 14:20:39
ça ne marche pas à moins que la synataxe que j'utilise soit fausse.
Saurais-tu la syntaxe?
Marsh Posté le 15-05-2003 à 14:32:36
il me semble que c'est TO_CHAR(nombre,format)
De toute facon, tout est expliqué la dessus :
http://wwwlsi.supelec.fr/www/yb/po [...] 40.html#50
Marsh Posté le 15-05-2003 à 14:45:35
Voila la requête que j'exécute
SELECT to_char(T01.CLCLI,'9999' FROM CLIALPTMP as T01
Voici le msg d'erreur
[SQL0204] TO_CHAR de type *N dans *LIBL non trouvé. Cause . . . . . : TO_CHAR de type *N dans *LIBL n'a pas été trouvé. S'il s'agit d'une instruction ALTER TABLE et si le type est *N, il n'a pas été trouvé de contrainte. S'il ne s'agit pas d'une instruction ALTER TABLE et que le type est *N, aucune fonction, procédure ou aucun déclencheur n'a été trouvé.Que faire . . . : Modifiez le nom, puis renouvelez votre demande. Si l'objet est un groupe de noeuds, vérifiez que le produit DB2 Multisystem est installé sur votre système et créez un groupe de noeuds à l'aide de la commande CL CRTNODGRP.
L'instruction mise en évidence a échoué, entraînant l'interruption du traitement
Marsh Posté le 15-05-2003 à 14:51:01
J'y connais rien à db2, mais la j'ai rien compris à l'erreur...
Faut que quelqu'un d'autre vienne, moi j'ai rien trouvé d'autre...
Ta syntaxe a l'air bonne...
Marsh Posté le 15-05-2003 à 15:03:03
essaye ça:
SELECT coalesce(char(T01.CLCLI),'9999' FROM CLIALPTMP as T01
normalement ça marche j'ai testé sur un DB2 ( AS400 ).
Par contre suivant les versions, certains fonctions existent ou pas ( comme ifnull par exemple et c'est pour ça que j'ai mis un coalesce).
Marsh Posté le 15-05-2003 à 15:32:12
ça marche enfin
Merci beaucoup tu m'enlèves une sacrée épine du pied.
Ps je suis également sur un AS400
Merci encore
Marsh Posté le 15-05-2003 à 10:05:15
Est-ce que qq saurait faire une telle transformation?
J'en ai besoin pour faire la jointure entre 2 champs: l'un est un numeric et l'autre un character.