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 rn 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