[DB2] extraire un nombre packé d'un CHAR

extraire un nombre packé d'un CHAR [DB2] - SQL/NoSQL - Programmation

Marsh Posté le 07-08-2007 à 09:36:17    

Hello,
 
Je vous soumets un probleme qui me laisse perplexe.
 
J'ai un champ CHAR(250) sous DB2 V7 sur mainframe qui contient plusieurs informations.
Et en position 220 sur une longueur de 10 j'ai un nombre packé. C'est mal fait mais c'est comme ca, je ne peux pas le changer.
 
Je voudrais pouvoir extraire ce nombre.
J'ai donc fait SELECT DEC(SUBSTR(champ250, 220, 10), 16, 2)
 
mais j'obtiens l'erreur suivante :
 
Invalid character found in a character string argument of the function "decimal".
 
Vous avez une idée?

Reply

Marsh Posté le 07-08-2007 à 09:36:17   

Reply

Marsh Posté le 07-08-2007 à 09:57:36    

tu pourrais poster un exemple de ce que tu choppes avec juste SUBSTR(champ250, 220, 10) ?
 
et est ce que tu as essayé ton dec(,16,2) sur un literal? peut-etre que ton séparateur n'est pas le bon ce genre de trucs

Reply

Marsh Posté le 07-08-2007 à 10:15:33    

salut,
 
j'ai "é°A" mais avec le petit rond au dessus du A.
 
Oui j'ai essayé SELECT DEC(SUBSTR('ABCDEF12,15', 7, 5), 16, 2)  et ca fonctionne correctement. Ca retourne bien 12,15
 
EDIT : et la valeur contenue dans le char250 que je voudrais obtenir est 514,70


Message édité par polo021 le 07-08-2007 à 10:21:56
Reply

Marsh Posté le 07-08-2007 à 11:58:59    

tu veux dire quoi par  
 

Citation :

j'ai "é°A" mais avec le petit rond au dessus du A.


 
 
fais un length(trim(SUBSTR(champ250, 220, 10))) en plus, pour voir si tu n'as pas un caractere zarbi qui traine et voir si tu retombes bien sur le nbr de caractere attendu

Message cité 1 fois
Message édité par casimimir le 07-08-2007 à 12:00:15
Reply

Marsh Posté le 07-08-2007 à 12:28:01    

casimimir a écrit :

tu veux dire quoi par  
 

Citation :

j'ai "é°A" mais avec le petit rond au dessus du A.


 
 
fais un length(trim(SUBSTR(champ250, 220, 10))) en plus, pour voir si tu n'as pas un caractere zarbi qui traine et voir si tu retombes bien sur le nbr de caractere attendu


 
c'est ce qui est affiché quand je fais le SUBSTR.  
oui ca me renvoi bien 10 le lenght ltrim.

Reply

Marsh Posté le 07-08-2007 à 14:23:42    

c'est donc que tu n'as pas un nombre dans cette partie de ton record?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed