Olá pessoall,
 
Obrigado novamente pelas dicas.
 
Estou lendo o manual e nada aparece sobre a utilização de um "execute" dentro 
do "for", seguindo a orientação dada fiz o seguinte:
=============================
set serveroutput on
DECLARE
var_Recnum integer ;
var_Tab varchar2(10);
begin
 for tab in (select table_name from dba_tables  where (owner,table_name) in
  (('OWNER1','TABELA1'),
   (' OWNER1','TABELA2'),
   (' OWNER1','TABELA3'),
   (' OWNER2','TABELA1'))
  ) loop
             var_Tab := tab.table_name ;
--
--//Alinha abaixo não e´permitida
             SELECT recnum INTO var_Recnum FROM ' || var_Tab || ' WHERE RECNUM 
= (SELECT MAX(RECNUM) FROM ' || var_Tab || ');
--
-- // a linha abaixo também não executa.
execute immediate ('SELECT recnum INTO var_Recnum FROM ' || var_Tab || ' WHERE 
RECNUM = (SELECT MAX(RECNUM) FROM ' || var_Tab || ')');
--
             Dbms_Output.Put_line ('Ultimo recnum encontrado = ' || var_recnum);
             Dbms_Output.Put_line ('Tabela ----------------- = ' || var_Tab);
end loop;
end;
===========================================
 
Agradeço qualquer ajuda ou explicação.
Grato, 
Walquencir Pedroti
  _____  

De: oracle_br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em nome de Leonardo 
Rezende
Enviada em: quinta-feira, 19 de junho de 2008 13:36
Para: oracle_br@yahoogrupos.com.br
Assunto: Re: [oracle_br] RES: Gerar sequence pegando o numero da variavel
 
acho que você poderia fazer um loop num select, tipo:

begin
for rec in (select table_name from dba_tables where (owner, 
table_name) in (('ONWER1', 'TABELA1'),('ONWER1', 'TABELA2'),('ONWER2', 
'TABELA1'), ETC)) loop
faz o que você tem que fazer com o rec.table_name
end loop;
end;

syntax not checked ;)

Walquencir Pedroti escreveu:
> 
> 
> Leonardo e André grato pelas respostas.
> 
> Baseado nestas informações foi modificado o script.
> 
> Agora mais uma dúvida de como fazer:
> Tenho várias tabelas, tem como fazer algo do tipo:
> 
> DECLARE
> var_Recnum integer ;
> var_Tabela1 varchar2(10) := 'TAB_CLI';
> var_Tabela2 varchar2(10) := 'TAB_FOR';
> var_Tabela3 varchar2(10) := 'TAB_FINANC';
> var_Tabela4 varchar2(10) := 'TAB_MOEDA';
> var_Tabela_N varchar2(10) := 'TAB_n';
> -- dECLARO VÁRIAS TABELAS
> for x in (var_tabela???)
> BEGIN
> for x in (var_tabela???)
> SELECT recnum INTO var_Recnum
> FROM var_tabela?
> WHERE RECNUM = (SELECT MAX(RECNUM) FROM var_tabela?);
> execute immediate ('create sequence ' || var_Tabela? ||'_SEQ increment 
> by 1 start with '|| var_Recnum || ' cache 5');
> ) LOOP
> end;
> 
> Deste modo declaro todas as variáveis em um único local, evitando erros.
> 
> Grato a todos,
> Walquencir Pedroti
> _____
> 
> De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br> 
> [mailto:oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br>] Em nome de Leonardo Rezende
> Enviada em: quarta-feira, 18 de junho de 2008 17:52
> Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br>
> Assunto: Re: RES: [oracle_br] Gerar sequence pegando o numero da variavel
> 
> Resolvido o problema do DDL dentro do bloco PL/SQL... Mas o problema
> citado pelo André Santo é pertinente e deve ser estudado... Você pode
> ter um problema na sua lógica...
> 
> Walquencir Pedroti escreveu:
> >
> >
> > Grato a todos
> > Resolvido
> >
> > DECLARE
> > var_Recnum number ;
> > BEGIN
> > select recnum into var_Recnum from TAB_CLI where rownum <=1 order by
> > COD_SEQ desc;
> > execute immediate ('create sequence TAB_CLI_SEQ increment by 1 start
> > with ' || var_Recnum || ' cache 5');
> > end;
> >
> > Walquencir Pedroti
> > Fone: 11 - 4344-3892
> > _____
> >
> > De: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br>
> > [mailto:oracle_br@yahoogrupos.com.br 
> > <mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br>
> > <mailto:oracle_br%40yahoogrupos.com.br>] Em nome de Walquencir Pedroti
> > Enviada em: quarta-feira, 18 de junho de 2008 16:35
> > Para: oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br>  
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br> 
> <mailto:oracle_br%40yahoogrupos.com.br>
> > Assunto: [oracle_br] Gerar sequence pegando o numero da variavel
> >
> > Olá pessoal.
> >
> > Fiz a seguinte estrutura:
> > /*---
> > DECLARE
> > var_Recnum number ;
> > BEGIN
> > select recnum into var_Recnum from TAB_CLI where rownum <=1 order by
> > COD_SEQ desc;
> > create sequence TAB_CLI_SEQ increment by 1 start with var_Recnum cache 5;
> > end;
> > --*/
> >
> > O create não roda.
> > Alguém pode dar uma ajuda??
> >
> > Obrigado,
> > W.Pedroti
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> 
> -- 
> 
> Sds,
> 
> Leonardo Rezende
> Analista Desenvolvedor
> [EMAIL PROTECTED] <mailto:yahoo%40lrezende.eti.br>  
> <mailto:yahoo%40lrezende.eti.br> 
> <mailto:yahoo%40lrezende.eti.br>
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 

-- 

Sds,

Leonardo Rezende
Analista Desenvolvedor
[EMAIL PROTECTED] <mailto:yahoo%40lrezende.eti.br> 
 


[As partes desta mensagem que não continham texto foram removidas]

Responder a