Pular para o conteúdo
  • Este tópico contém 2 respostas, 3 vozes e foi atualizado pela última vez 8 anos, 3 meses atrás por Avatar photoJosé Laurindo Chiappa.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #108354
    Avatar de airoospairoosp
    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
      Avatar de Paulo WerneckPaulo 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