ok, o primeiro requisito vc já tem... A geração de código , se vc optar pelo sqlplus, seria conectar como o OWNER em questão e fazer algo + ou - tipo, se não errei nos plics :
set term off feedback off verify off pages 0 lines 500 trimspool on head off spool delete_tables.sql select 'DELETE FROM ' || table_name || ' WHERE nomedacoluna < to_date(''01/01/2009'', ''dd/mm/yyyy'')' from USER_TABLES / spool off exit O cursor PL/SQL seria semelhante, retirando-se os comandos sqlplus e encaixando o SQL no loop, e dentro do loop executando-se via EXECUTE IMMEDIATE a string montada... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, "Carlos Pinto" <carlos.pintoo@...> escreveu > > Valeu .tenho um campo data em todas as tabelas. > > > > Com os melhores cumprimentos, > > Carlos Pinto > > > > De: oracle_br@yahoogrupos.com.br [mailto:oracle_br@yahoogrupos.com.br] Em > nome de José Laurindo > Enviada: sexta-feira, 20 de Janeiro de 2012 12:25 > Para: oracle_br@yahoogrupos.com.br > Assunto: [oracle_br] Re: Limpeza de registos > > > > > > Bem, o primeiro passo é ter como LOCALIZAR a data em que os registros foram > inseridos : o RDBMS Oracle absolutamente *** NÃO *** armazena por default > essa informação, assim OU vc tem que ter uma coluna em cada tabela que traga > essa informação, OU vc tem algum tipo de Auditoria ativado (seja via AUDIT, > FGA, logminer, trigger de DML, o que for) que traga essa informação > (obviamente essa Auditoria deveria estar ativa ANTES da inserção) .... Se > NENHUMA das duas opções é verdadeira, vc Não Tem Como saber quando o > registro foi inserido, é isso ... > Uma vez vc tendo onde buscar a informação, é um simples DELETE o que vc vai > fazer (ou um DROP PARTITION num caso ideal aonde a tabela é particionada e a > informação de inserção é citada na chave de particionamento) : claro, para > que vc não tenha que escrever um comando para cada tabela vc VAI usar alguma > técnica de geração de código : pode ser simplesmente um cursor aonde cada > string de comando para cada tabela é montada e executada via EXECUTE > IMMEDIATE, ou (a minha favorita) vc gera um script .SQL via spool no > sql*plus via SELECT que retorne a informação ... > > []s > > Chiappa > --- Em oracle_br@yahoogrupos.com.br <mailto:oracle_br%40yahoogrupos.com.br> > , "Carlos Pinto" <carlos.pintoo@> escreveu > > > > Bom dia, > > > > > > > > Amigos como posso Eliminar todos os registos anterior ao ano 2009 de todas > > as tabelas de um determinado SCHEMA? > > > > > > > > Obrigado. > > > > Carlos Pinto > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] >