[quote=”thiagofm”:3963vejj]Amigos estou com o seguinte problema
Tenho uma procedure pra ir tratando dados e inserindo em tabelas
A procedure vai trabalhar com arquivos de cerca de 80mil linhas
Estou usando o sqlloader para dar carga inical em uma tabela temporaria e de la trabalhar os dados
Gostaria de ao longo da execucao dessa procedure eu pudesse ir consultando registros que foram inseridos
So que para fazer isso eu teria que inserir dados em uma tabela de log e comitar esses dados, e na minha procedure original eu so comito ao final…
entao a questao é: como inserir dados em uma tabela de log e comitar sem comitar a transacao principal?
obrigado![/quote]
Daria para fazer uma gambiarra, tipo:
Criar triggers nessas tabelas onde você insere, define essas triggers sendo pragma autonomous transaction, e nela você pega os registros recém inseridos e dá um insert numa tabela “réplica” de log. No fim da trigger você pode dar commit e apenas a transação “filha” vai ser gravada.
Só que se você der rollback na transação principal, já era. Não vai sair da tabela log pois ela dá o commit em uma transação separada (autônoma, como diz o nome).
Pode usar para brincar e testar tranquilo, mas vai pesar o desempenho no procedimento, é claro, pois você vai estar inserindo duplicado em tudo via trigger pra each row.
Referência:
http://download.oracle.com/docs/cd/E118 … pragma.htm
[]’s,
Francisco.