execute immediate com 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
mrj
Rank: Estagiário Pleno
Rank: Estagiário Pleno
Mensagens: 6
Registrado em: Seg, 16 Jan 2006 7:27 am
Localização: Rio de janeiro - RJ

A rodar o pl abaixo retorno erro, esta correto o escopo do pl?
Preciso de ajuda....o mais urgente possivel.

Selecionar tudo

declare
msg varchar2(5000);
resp varchar2(1000);
begin
for c in ( select distinct table_name,column_name
           from all_cons_columns 
           where table_name like 'DIM%' 
           and constraint_name like '%FK' 
           and owner = 'MDW'
           order by table_name) loop
      msg := 'SELECT COUNT(*) FROM ' || c.table_name || ' WHERE ' || c.column_name ||  '= -1;';
      EXECUTE IMMEDIATE msg  into resp;
    --  execute immediate 'SELECT COUNT(1) FROM ' || c.table_name  || ';'  
      --into msg;
      dbms_output.put_line (msg);   
  end loop;
end;
gilbertoca
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 372
Registrado em: Ter, 24 Jan 2006 3:33 pm
Localização: Palmas - TO
Contato:

Que erro?
O que você quer fazer?
Talvez o que você procura já esteja pronto. Procure no forum!

Gilberto
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Parece que o problema é o ; que tem depois do -1.
Tirei ele e a rotina funcionou.

Outra coisa: Seu dbms_output está mostrando o SELECT e não a RESP.
Avatar do usuário
MuLtAnI
Moderador
Moderador
Mensagens: 90
Registrado em: Ter, 01 Jun 2004 9:21 am
Localização: Videira - SC
Contato:

Só complementando

dbms_output.put_line (resp);

[]'s
Responder
  • Informação
  • Quem está online

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