› Fóruns › SQL e PL/SQL › char para binario, função › char para binario, função
Oi Leandro,
Achei que dava pra fazer com a cláusula MODEL, fui brincar e cheguei a uma resposta, espero que entenda e que minha resposta ajude… Não fiz todos os testes mas me parece que está correto:
WITH tab_texto AS (
SELECT 'aa' AS texto FROM dual
UNION ALL
SELECT 'ab' AS texto FROM dual
)
SELECT LPAD(texto2, 8*CEIL(LENGTH(texto2)/8),'0')
FROM (SELECT texto, ROWNUM AS y FROM tab_texto)
MODEL
PARTITION BY (y)
DIMENSION BY (1 as x)
MEASURES (UTL_RAW.CAST_TO_BINARY_INTEGER(UTL_RAW.CAST_TO_RAW(texto)) num,
CAST(NULL AS VARCHAR2(4000)) AS texto2)
RULES ITERATE (100000) UNTIL (num[1] <= 0)
( texto2[1] = MOD(num[1],2) || texto2[1],
num[1] = FLOOR(num[1] / 2)
);
Abraços,