Pular para o conteúdo

Fóruns SQL e PL/SQL char para binario, função char para binario, função

#99436
burga
Participante

    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,