Je sais pas si c'est moi qui est mal compris ou non à cause de vos histoires de CASTING à tous les deux. Je proposais dans mon post précédent une UDF, la voici :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| create function binaire (hexa varchar(8))
returns varchar(64)
language sql
deterministic
no external action
Returns NULL on NULL Input
Begin
Declare wHexa varchar(8);
Declare i int;
Declare wResult varchar(64);
Set wResult = '';
Set wHexa = strip(trim(hexa), L, '0');
Set i = 1;
WHILE i <= length(wHexa) DO
Set wResult = wResult Concat
Case SUBSTR(wHexa, i, 1)
When '0' then '0000'
When '1' then '0001'
When '2' then '0010'
When '3' then '0011'
When '4' then '0100'
When '5' then '0101'
When '6' then '0110'
When '7' then '0111'
When '8' then '1000'
When '9' then '1001'
When 'A' then '1010'
When 'B' then '1011'
When 'C' then '1100'
When 'D' then '1101'
When 'E' then '1110'
When 'F' then '1111'
Else ''
End;
Set i = i + 1;
END WHILE;
Return wResult;
End; |
Ainsi
select binaire(hex(130)) from sysibm.sysdummy1
donne
Partager