Problemas com CURSOR, IF 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

Estou com um problema

Preciso abrir um cursor e logo de cara fazer algumas validaçoes

Exemplo:

Selecionar tudo

 Cursor	c01	is	
	
if	:controle_empresarial.cd_produto			is	not	null	and 
		:controle_empresarial.cd_tipo_bem		is	not	null	and
		:controle_empresarial.cd_carac_bem_segur	is 	not 	null	and
		:controle_empresarial.cd_ramo			is 	not 	null 	then
		select	xxxxxx
elsif xxxx then
      select xxxxxxx
elsif xxxxxxxx then

end if;

porém não esta dando erro: dizendo que espera pelo select.

alguém pode ajudar?
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


Só complementando

ESTOU EM UMA PROGRAM UNIT !!!
mprocha
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 19
Registrado em: Sex, 11 Jul 2008 11:14 am
Localização: Campinas - SP
Marcos Pinheiro da Rocha
Desenvolvedor Java/Forms/PL-SQL

você vai ter que abrir o cursor de maneira dinamica, tipo assim:
(Exemplo simples, pois eu to meio sem tempo)

Selecionar tudo

DECLARE
  cSQL varchar2(1000);
  TYPE RC  IS REF CURSOR;
  C1       RC;
  cVarCol vachar2(100);
BEGIN
  If <condicao1> then
     cSQL := 'select dummy from dual';  
  Elsif <condicao2> then
     cSQL := 'select coluna from Tabela';  
  end if;

  OPEN C1 FOR cSQL;
  LOOP
    FETCH C1 into cVarCol;
    EXIT WHEN C1%NOTFOUND;
    Message(cVarCol);
  END LOOP;
  CLOSE C1;
END;
Bom, essa é a ideia ok
Pesquize tambem sobre:
- EXECUTE IMMEDIATE
- DBMS_SQL
- REF CURSOR
- Pacote EXEC_SQL do FORMS

Boa sorte
Responder
  • Informação
  • Quem está online

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