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

como exibir o valor do número em palavras


Então, como funciona a consulta? Bem, aqui está o porquê:
select to_char(to_date(:number,'j'),'jsp') from dual;

Se você olhar para a parte mais interna da consulta to_date(:number,'j') o 'j' ou J é a data juliana (1 de janeiro de 4713 aC), basicamente esta data é usada para estudos astronômicos.

Então to_date(:number,'j') pega o número representado por number e finge que é uma data juliana, converte em uma data.

Se você passar 3 para o número, ele converterá a data para 3 de janeiro de 4713 aC, significa que 3 é adicionado à data juliana.
select to_char(to_date(3,'j'),'jsp') from dual;

Now to_char(to_date(3,'j'),'jsp'), jsp =Now; pegue essa data(to_date(3,'j')) e soletre o número juliano que ela representa, a saída é:
TO_CH
-----
three

Há uma limitação ao usar datas julianas, varia de 1 a 5373484. É por isso que se você colocar os valores depois de 5373484, ele gerará um erro conforme mostrado abaixo:
ORA-01854: julian date must be between 1 and 5373484

Olá a todos, é interessante este tópico. Lembro-me de quando estava aprendendo Oracle em 2005, um dos instrutores exigiu que eu escrevesse um código PL/SQL para converter números em palavras, era um código inteiro de duas páginas para chegar a isso.

Aqui estão algumas referências que podem nos ajudar a entender o dia juliano, por isso usamos a letra 'j' ou 'J' durante esta operação.

Primeiro há um site que tem o exemplo e a explicação sobre "Como converter números em palavras usando o Oracle SQL Query":

http://viralpatel.net/blogs/convert- número-em-palavras-oracle-sql-query/

Segundo se você quiser saber mais sobre o "Dia Juliano" acesse:

http://en.wikipedia.org/wiki/Julian_day

Terceiro, se você quiser saber mais sobre quem propôs o número do dia juliano em 1583, foi por "Joseph Scaliger":

http://en.wikipedia.org/wiki/Joseph_Justus_Scaliger

Não faz sentido eu continuar repetindo o que outro autor nesses sites fez, por isso acabei de postar o link que você pode acessá-los e ler o que precisa para entender como funciona uma consulta como essa:
SELECT TO_CHAR (TO_DATE (2447834, 'j'), 'jsp') FROM DUAL;

//Saída:dois milhões quatrocentos e quarenta e sete mil oitocentos e trinta e quatro