Pular para o conteúdo
Visualizando 1 post (de 1 do total)
  • Autor
    Posts
  • #103627
    Avatar de airoospairoosp
    Participante

      Boa tarde,

      A procedure abaixo retornar informação em um cursor. O detalhe é que tive que incluir uma consistência para verificar se o cursor retorna vazio. Para isso utilizei o %NOTFOUND. O problema é que partir deste controle não consegui mais retornar o valor caso o mesmo exista. A solução que encontrei foi repetir o cursor no ELSE o que não achei legal. Essa procedure esta em uma package que é utilizada por uma aplicação WEB.

      A minha pergunta é: teria alguma forma de retornar o valor a partir do ELSE sem precisar repetir a query?

      PROCEDURE SEL_VALOR_RAMAL
      (
      pJPNum in varchar2
      ,pCursor IN OUT RecsetCursor
      )

      AS

      v_custo_ramal number;

      BEGIN

      OPEN pCursor FOR
      SELECT VLFAT AS CUSTO_RAMAL
      FROM empresa
      WHERE ITEMNUM = ‘RAM’
      AND ATRIBUTO = ‘N’
      AND JPNUM = pJPNum;

      fetch pCursor into v_custo_ramal;

      if ( pCursor%notfound ) then

      Open pCursor for select 0 as CUSTO_RAMAL from dual;

      else

      OPEN pCursor FOR
      SELECT VLFAT AS CUSTO_RAMAL
      FROM empresa
      WHERE ITEMNUM = ‘RAM’
      AND ATRIBUTO = ‘N’
      AND JPNUM = pJPNum;

      end if;

      END SEL_VALOR_RAMAL;

      Obrigado.

      Airton

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