erro no cursor

Dicas do Oracle Forms Builder - Blocos, Itens, LOV, Canvas, Triggers, comandos, PLL, d2kwutil, FMB, Alert, menus, etc
Responder
dmaranini
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 20 Jun 2008 4:07 pm
Localização: são paulo

oww!
alguém pode me ajudar?

porque não esta rolando ?
na program unit esta dando erro..
mas eu preciso primeiro fazer um select count, validar esse count e depois entrar no cursor....

help!!

Selecionar tudo


begin
	select count(1)
	into	v_cont_reg
	from	restr_produ_ramo_categ	rprc
	where	rprc.cd_caracteristica_bem_segur	=	nvl(:controle_empresarial.cd_carac_bem_segur,rprc.cd_caracteristica_bem_segur)
	and   	rprc.cd_ramo				=	nvl(:controle_empresarial.cd_ramo,rprc.cd_ramo)
	and   	rprc.cd_produto				=	nvl(:controle_empresarial.cd_produto,rprc.cd_produto);

end;

if	v_cont_reg	<>	0	then
	cursor	cur1	is
dmaranini
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 20 Jun 2008 4:07 pm
Localização: são paulo

codigo mais detalhado


Selecionar tudo

PROCEDURE PROD7060_061
		(p_mens		in out	varchar2)	IS
	--
	v_spool			text_io.file_type;
	v_registro		varchar2(190);  
	v_saida_anormal		exception;
	v_indica_erro		number(02)	:=	0;
	v_cont_reg		number;
begin
	select count(1)
	into	v_cont_reg
	from	restr_produ_ramo_categ	rprc
	where	rprc.cd_caracteristica_bem_segur	=	nvl(:controle_empresarial.cd_carac_bem_segur,rprc.cd_caracteristica_bem_segur)
	and   	rprc.cd_ramo				=	nvl(:controle_empresarial.cd_ramo,rprc.cd_ramo)
	and   	rprc.cd_produto				=	nvl(:controle_empresarial.cd_produto,rprc.cd_produto);

end;

if	v_cont_reg	<>	0	then
	cursor	cur1	is
	select xyz!!
    gera o txt
else
 mensagem para usuario
end if;
bertosro
Rank: Analista Júnior
Rank: Analista Júnior
Mensagens: 88
Registrado em: Sex, 18 Ago 2006 11:13 am
Localização: São Paulo - SP
Bertosro
MSN / TALK - roberto.fernandes@gmail.com

Você não estava abrindo o cursor.
Segue o codigo corrigido.

Selecionar tudo

PROCEDURE prod7060_061 (p_mens IN OUT VARCHAR2)
IS
   --
   v_spool           text_io.file_type;
   v_registro        VARCHAR2 (190);
   v_saida_anormal   EXCEPTION;
   v_indica_erro     NUMBER (02)       := 0;
   v_cont_reg        NUMBER;
BEGIN
   BEGIN
      SELECT COUNT (1)
        INTO v_cont_reg
        FROM restr_produ_ramo_categ rprc
       WHERE rprc.cd_caracteristica_bem_segur =
                NVL (:controle_empresarial.cd_carac_bem_segur,
                     rprc.cd_caracteristica_bem_segur )
         AND rprc.cd_ramo = NVL (:controle_empresarial.cd_ramo, rprc.cd_ramo)
         AND rprc.cd_produto = NVL (:controle_empresarial.cd_produto, rprc.cd_produto);
   EXCEPTION
      WHEN OTHERS
      THEN
         DBMS_OUTPUT.put_line ('Erro no Primeiro Select - sqlerrm: '|| SQLERRM);
   END;

   IF v_cont_reg <> 0
   THEN
      FOR cur1 IN (SELECT 'xyz!!' a
                     FROM DUAL)
      LOOP
         DBMS_OUTPUT.put_line ('gera o txt ' || cur1.a);
      END LOOP;
   ELSE
      DBMS_OUTPUT.put_line (' mensagem para usuario  ');
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      DBMS_OUTPUT.put_line (   'Erro na PROCEDURE prod7060_061 - sqlerrm: '|| SQLERRM);
END;
BERTOSRO :-o
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 12 visitantes