Pular para o conteúdo
  • Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 8 anos, 4 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #108354
    airoosp
    Participante

      Boa tarde,

      Alguém sabe se é possível obter o resultado e o resto da divisão usando apenas um comando ou uma única função, ao invés de usar os exemplos abaixo?

      select mod(15,2) as resto from dual;

      select 15/2 as resultado from dual;

      select 15/2 as resultado, mod(15,2) as resto from dual;

      Obrigado.

      Airton

      #108355
      Paulo Werneck
      Participante

        Muito provavelmente não existe (eu acho), por que uma função tem um único retorno.

        Mas como dica você poderia criar uma function com essa finalidade e concatenar os valores no retorno. É uma ideia.

        #108356
        Avatar photoJosé Laurindo Chiappa
        Moderador

          Airo, pode consultar a fonte documental (manual SQL Reference da tua versão de Oracle) que vc vai ver que não tem não uma única função que te dê os dois valores : na doc vv verá registradas as funções MOD e REMAINDER (que são as principais que trabalham com divisão), não há uma única…
          Além disso, uma Função no PL/SQL (veja manual de PL/SQL para mais refs) só pode ter um único dado de retorno : se vc for escrever uma função PL/SQL que aceite o dividendo e o divisor como entrada e retorne tanto o resto quanto o resultado, vc pode :

          – concatenar os dois números num só valor

          ou

          – criar um TYPE que seja composto por dois valores numéricos e usar esse TYPE como o retorno da Function

          ou

          – criar a função como PIPELINED, o que permite múltiplos retornos

          ou

          – criar um ARRAY e ter a função retornando esse Array com dois elementos

          ou

          – ter a função preenchendo dois PARÂMETROS OUT , um para o resto e outro para o resultado

          Abraços,

          José Laurindo Chiappa

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