Erro no cursor

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
joe_cqr
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 23 Ago 2006 12:32 pm
Localização: SP

olá pessoal,

tenho o seguinte código abaixo:

Selecionar tudo

cursor c_buscar_contrato is
	select  
		sum(a.vl_total) a,
		a.cd_cliente,					
		b.nm_nome,
		sum(c.vl_receita_negociada) b
	from    
		publccao a,
		cliente b,
		meta_negociada c
	where
		a.cd_gestor = :contato_cliente.cd_contato and
		a.cd_veiculo = to_number(:contato_cliente.list68) and
		b.cd_cliente = a.cd_cliente and
		c.cd_cliente = a.cd_cliente		
		group by a.cd_cliente,b.nm_nome,c.cd_cliente;

cursor c_buscar_agencia is
	select  
		sum(a.vl_total) a,
		a.cd_agencia_publicidade,					
		b.nm_nome,
		sum(c.vl_receita_negociada) b
	from    
		publccao a,
		cliente b,
		meta_negociada c
	where
		a.cd_gestor = :contato_cliente.cd_contato and
		a.cd_veiculo = to_number(:contato_cliente.list68) and
		b.cd_cliente = a.cd_agencia_publicidade and
		c.cd_cliente = a.cd_agencia_publicidade		
		group by a.cd_agencia_publicidade,b.nm_nome,c.cd_cliente;

Selecionar tudo

if v_tipo_plan = 01 then
		go_block('CAMPOS');
		first_record;			
		for v_cursor_a in c_buscar_agencia
		 loop
		    :campos.agencia := v_cursor_a.nm_nome;
		    :campos.realizado := v_cursor_a.a;
		    :campos.planejado := v_cursor_a.b;	
		    next_record;	     
		 end loop;		
	end if;

	if v_tipo_plan = 02 then
		go_block('CAMPOS');
		first_record;
		for v_cursor_b in c_buscar_contrato 
		 loop
		    :campos.agencia := v_cursor_b.nm_nome;
		    :campos.realizado := v_cursor_b.a;
		    :campos.planejado := v_cursor_b.b;
		    next_record;
		 end loop;		
	end if;	
quando isso é executado no forms ele apresenta a mensagem de erro:
ORA-01001: invalid cursor

já tente fazer alguma alterações mas até agora não consegui nada, continua dando o mesmo erro.
podem me ajudar por favor!!!

obrigado,

Alex[/code]
joe_cqr
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 7
Registrado em: Qua, 23 Ago 2006 12:32 pm
Localização: SP

pessoal,
já consegui resolver aqui,
o problema era que eu estava fazendo um if no cursor para verificar se tinha retornado dados for do loop, por isso tava aparecendo a mensagem de erro!!!!
Responder
  • Informação