- Este tópico contém 0 resposta, 1 voz e foi atualizado pela última vez 14 anos, 5 meses atrás por
airoosp.
Visualizando 1 post (de 1 do total)
Visualizando 1 post (de 1 do total)
- Você deve fazer login para responder a este tópico.
› Fóruns › SQL e PL/SQL › Retornar valor para cursor sem dbms_output?
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
› Fóruns › SQL e PL/SQL › Retornar valor para cursor sem dbms_output?