Funções de Conversão

Bem, há muito tempo atrás eu postei sobre algumas funções Oracle cobradas na certificação. Hoje irei postar funções que podem ajudar ( muito ) no dia-a-dia, principalmente com situações não normais.

Aqui vai..

ASCIISTR() Converte X em uma string ASCII
BIN_TO_NUM () Converte um binário em number
CAST ( X AS TYPE ) Transforma uma variável em outro tipo ( compatível )
CHARTOROWID( X ) Converte X em um valor ROWID
[DE]COMPOSE ( X ) Converte ou reverte X em uma string unicode
HEXTORAW( X ) Converte um hexadecimal para um número binário
NUMTODSINTERVAL( X ) Converte X em INTERVAL DAY TO SECOND
NUMTOYMINTERVAL( X ) Converte X em INTERVAL YEAR TO MONTH
RAWTOHEX( X ) Converte um binário para uma string (VARCHAR2) com hexadecimais
RAWTONHEX( X ) Converte um binário para uma string (NVARCHAR2) com hexadecimais
ROWIDTOCHAR( X ) Converte um ROWID em VARCHAR2
ROWIDTONCHAR( X ) Converte um ROWID em NVARCHAR2
TO_BINARY_DOUBLE( X ) Converte x em BINARY_DOUBLE
TO_BINARY_FLOAT( X ) Converte x em BINARY_FLOAT
TRANSLATE( STR, A, B ) Dentro de uma String STR, converte todos A em B
TO_SINGLE_BYTE( X ) Converte os caracteres multi-byte em single-byte correspondentes.
UNISTR( X ) Converte x para NCHAR2
CHR( X ) Dado um valor númerico, esta função o converte para o respectivo caracter.

Agora reflitamos.

TRANSLATE e CHR eu considero funções extremamente úteis, principalmente em casos que você tenha um \r\n em uma variável e queira representar isso em banco.

Para o caso que citei, poderia ser usada a seguinte sentença:

SELECT 'LINHA1 '|| CHR(10) || ' LINHA2 ' FROM DUAL

Outra idéia seria substituir alguns ‘<br/>’ por CHR(10)

SELECT TRANSLATE( 'MEU TEXTO <br/> HTML ', '<br/>', CHR(10) ) FROM DUAL

Deixe uma resposta