Como executar condições 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
mariogus
Rank: Analista Sênior
Rank: Analista Sênior
Mensagens: 157
Registrado em: Sex, 30 Nov 2007 1:17 pm
Localização: Porto Alegre - RS

Pessoal,

Preciso validar se o endereço não existe ele não cadastre a pessoa no Cursor :

Selecionar tudo

CURSOR cm_pes_end_vw(pi_cd_pessoa cm_pessoa_endereco_vw.cd_pessoa%type) IS
        SELECT *
        FROM itg.cm_pessoa_endereco_vw
        WHERE cm_pessoa_endereco_vw.CD_PESSOA = pi_cd_pessoa
        ;

Selecionar tudo

CURSOR cm_pes IS
        SELECT *
        FROM itg.cm_pessoa
        WHERE cm_pessoa.dt_processamento IS NULL;
	

Selecionar tudo

  For r_pes IN cm_pes loop
        For r_pes_vw IN cm_pes_vw(r_pes.id_pessoa) loop
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

Porque não faz assim:

Selecionar tudo

Select *
  From Itg.Cm_Pessoa, Itg.Cm_Pessoa_Endereco_Vw
 Where Cm_Pessoa_Endereco_Vw.Cd_Pessoa = Cm_Pessoa.Cd_Pessoa
   And Cm_Pessoa.Cdpessoa = Pi_Cd_Pessoa
   And Cm_Pessoa.Dt_Processamento Is Null;
Dessa forma só vai trazer as pessoas que tem endereço,

o que pode ser que aconteca nesse caso é trazer duas vezes a mesma pessoa, devido a esta pessoa ter dois endereços, aí você vê qual a regra que deve ser aplicada, se mostra os dois enderecos, etc,
Responder
  • Informação
  • Quem está online

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