Pular para o conteúdo
Visualizando 6 posts - 1 até 6 (de 6 do total)
  • Autor
    Posts
  • #81637
    leo_jf
    Participante

      Fala GTE BLZ
      Tenho uma dúvida, que aparentemente era simples.
      Tenho um campo NUMBER(4) que armazena horas/minutos.
      Estou criando um bloco pl/sql que irá buscar esse campo e separar as horas dos minutos.
      Na tabela busquei 644.
      No arquivo txt com coluna hora e coluna minuto era para vir 06 44.
      Para fazer isso, usei um to_char para transf. caracter e substr para buscar os dois primeiros campos, e caso houvesse apenas um campo completasse com 0. Mas não sei pq isso não esta acontecendo.
      Sempre busca 66 4.
      Até usei o substr – para ir de tras para frente, mas mesmo assim não funciona.
      Uma coisa aparentemente bem simples não está funcionando. Alguém saberia dizer o por que?
      agradeço.

      #81638
      Ishii
      Participante

        Leo,

        Bom dia.

        Melhor seria utilizar primeiro um lpad para preencher com 0 a esquerda antes do subst. Poderia nem ser necessário o to_char, pois ficaria substr(lpad(coluna,’0′),1,2)||’ ‘ ||substr(lpad(coluna,’0’),3,2) (ou algo parecido)

        []s Ishii

        #81639
        leo_jf
        Participante

          Fala Ishii..blz
          Não funcionou. Vem vazio, mesmo transformando em to_char.
          O substr era para funcionar e buscar não sei pq ta acontecendo isso.

          #81640
          santosclay
          Participante

            Olá Amigos.

            Léo.

            Fiz o teste pela Dual e ficou assim:


            SELECT 644 AS "HORAS_BASE",
            LPAD(TO_CHAR(644),4,'0') "HORA_BASE_COM_LPAD",
            SUBSTR(LPAD(TO_CHAR(644),4,'0'),1,2) AS "HORAS",
            SUBSTR(LPAD(TO_CHAR(644),4,'0'),3,2) AS "MINUTOS"
            FROM DUAL;

            Caso isso não ajude você poderia postar o select utilizado?

            Abraços Clayton.

            #81641
            Marcio68Almeida
            Participante

              Select substr (TO_CHAR (10000 + 644), 2) from dual

              #81649
              leo_jf
              Participante

                Fala Galera, blz
                Marcio, Santos, Ishii obrigado a todos mais uma vez pela ajuda.
                Por fim, coisa de pl/sql, consegui fazer no pl mesmo. juntei o que o Ishii falou com o do Marcio/Santos.
                Acabei criando um LPAD(SUBSTR(TO_CHAR(cad.aces_hr),1,4),4,’0′) e outra variavel v_hr_tot que armazenou os 4 digitos.
                Depois nas variaveis individuais, usei o substr para buscar 2 digitos da hora e 2 do minutos. Funcionou legal.
                Obrigado mais uma vez pela ajuda. Foi muito útil.

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