problema com exception
Olá, amigos! Estou com problemas na exception desta procedure, pois não está acontecendo nada. Gostaria que retornase uma mensagem quando o cursor não retornasse dados. Já tentei V_FORM_PGTO¬NOTFOUND e tb não funcionou. Se alguém tiver alguma sugestão, agradeço.
PROCEDURE P_BUSCA_FORMA_PGTO(
V_FORM_PGTO OUT CURSOR_TYPE,
v_ERRO OUT VARCHAR2)
IS
BEGIN
OPEN V_FORM_PGTO FOR
SELECT CD_FORM_PGTO,DS_FORM_PGTO
FROM T4.TB_FORM_PGTO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
V_ERRO:=´Sem retorno de dados´;
WHEN OTHERS THEN
V_ERRO:=SQLERRM;
CLOSE V_FORM_PGTO;
END P_BUSCA_FORMA_PGTO;
PROCEDURE P_BUSCA_FORMA_PGTO(
V_FORM_PGTO OUT CURSOR_TYPE,
v_ERRO OUT VARCHAR2)
IS
BEGIN
OPEN V_FORM_PGTO FOR
SELECT CD_FORM_PGTO,DS_FORM_PGTO
FROM T4.TB_FORM_PGTO;
EXCEPTION
WHEN NO_DATA_FOUND THEN
V_ERRO:=´Sem retorno de dados´;
WHEN OTHERS THEN
V_ERRO:=SQLERRM;
CLOSE V_FORM_PGTO;
END P_BUSCA_FORMA_PGTO;
Mouraca
Curtidas 0
Respostas
Motta
30/12/2006
PROCEDURE P_BUSCA_FORMA_PGTO( V_FORM_PGTO OUT CURSOR_TYPE, v_ERRO OUT VARCHAR2) IS N_CONT NUMBER :=0; BEGIN FOR R IN (SELECT CD_FORM_PGTO,DS_FORM_PGTO FROM T4.TB_FORM_PGTO) LOOP N_CONT := N_CONT + 1; -- MAIS ALGUM PROCESSO DO CURSOR END LOOP; IF N_CONT = 0 THEN V_ERRO:=´Sem retorno de dados´; END IF; EXCEPTION WHEN OTHERS THEN V_ERRO:=SQLERRM; END P_BUSCA_FORMA_PGTO;
OUTRA SOLUÇÃO É FAZER UM SELECT COUNT(*) ...
SE QUISER APENAS SE SABER SE O SELECT RETORNA DADOS
GOSTEI 0