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]