Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Modelo de formato de número TO_Char no Oracle


Tenha em mente que você está transformando um número em uma string. O número não tem nenhum sentido de "," ou "." ou qualquer coisa - é um número.

O truque é obter o TO_CHAR função para converter o número interno para a representação de string que você deseja. Existem alguns problemas com os quais se preocupar:obter o ponto de base (decimal) correto e lidar com o preenchimento.

Aqui está um exemplo de trabalho:
SELECT to_char(0.00235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

0,00235

SELECT to_char(156.45823,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

156,45823

SELECT to_char(-0.0235,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-0,0235

SELECT to_char(-156.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

-156,45623

SELECT to_char(123456789.45623,'FM99999999999999990D99999', 'NLS_NUMERIC_CHARACTERS = '',.''') FROM DUAL;

123456789,45623

As partes relevantes da máscara:

FM é usado para cortar espaços em branco à esquerda e à direita que o Oracle normalmente usa para preencher números.

D é o ponto de base, dependendo de suas configurações de NLS.

NLS_NUMERIC_CHARACTERS ... é uma substituição de suas configurações de NLS locais - isso pode não ser necessário se sua localidade usar uma vírgula para o decimal, mas é uma maneira de forçar esse comportamento em um banco de dados com, digamos, configurações norte-americanas.