Pular para o conteúdo

Marcado: 

  • Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 2 anos, 7 meses atrás por Avatar de José Laurindo ChiappaJosé Laurindo Chiappa.
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #149262
    Avatar de MottaMotta
    Participante

      Simples , em tese

      SELECT TO_CHAR(SYSDATE, 'YEAR','NLS_DATE_LANGUAGE=PORTUGUESE') FROM DUAL;
      

      Deveria retornar Dois mil e vinte e um. Mas retorna TWENTY TWENTY-ONE

      Versão 11 Nls da sessão está inglês como os do Banco

      <code class="hljs language-sql">nls_language        AMERICAN    AMERICAN
      nls_date_language   
      

      O que pode estar errado ?

       

      Fonte

      #149286
      Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
      Moderador

        Como ** quase sempre Acontece **, a resposta repousa na documentação Oracle , online em https://docs.oracle.com/cd/E11882_01/server.112/e41084/sql_elements004.htm#SQLRF00210 no caso – aí está escrito (ênfase com negrito é minha) :

        “The language in which these values are returned is specified either explicitly with the initialization parameter NLS_DATE_LANGUAGE or implicitly with the initialization parameter NLS_LANGUAGE. The values returned by the YEAR and SYEAR datetime format elements are always in English.”

        OU SEJA, Ano especificamente é sempre Soletrado em Inglês , tanto ao usar YEAR quanto SYEAR, confere ?????

        []s

        Chiappa

        #149287
        Avatar de MottaMotta
        Participante

          Ou seja , nada errado , não atentei para esta “doc” ontem.

          Um simples crlf …

          Valeu.

          #149289
          Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
          Moderador

            Blz ? Sim, exatamente, working as designed…. E, no caso, comofaz pra obter número por extenso em pt-br ? Como não vem uma rotina nativa pra isso no Oracle, vc Usa/Adapta uma das muitas já escritas, como http://lib.seven.com.br/imprimir_artigo.asp?codartigo=976 , https://sqlshow.wordpress.com/2013/05/11/oracle-numero-por-extenso/ , https://www.profissionaloracle.com.br/2014/09/27/numero-por-extenso-monetario-e-calculo-de-formulas-matematicas-no-oracle/ aqui mesmo no Fórum, entre muitas outras….

            []s

            Chiappa

            #149298
            Avatar de MottaMotta
            Participante

              Uso uma para valores em Reais , esta foi uma curiosidade que vi , não era uma necessidade.

               

              #149301
              Avatar de José Laurindo ChiappaJosé Laurindo Chiappa
              Moderador

                Okdoc : se/quando no futuro vc tiver necessidade de soletrar/escrever por extenso um número que não seja monetário e portanto não seja dividido em Reais e Centavos, já sabe de onde buscar/adaptar….

                 

                Abraços,

                 

                Chiappa

              Visualizando 6 posts - 1 até 6 (de 6 do total)
              • Você deve fazer login para responder a este tópico.
              plugins premium WordPress