Commit e RollBack por Transação

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
Lekich
Rank: Estagiário Júnior
Rank: Estagiário Júnior
Mensagens: 2
Registrado em: Sex, 01 Jul 2005 2:54 pm
Localização: SP

A minha duvida é o seguinte:

Na procedure A tenho um INSERT na tabela A e chamo a Procedure B que tenho um INSERT na Tabela B.
Na procedure B dou o Commit, mas não quero que o Commit salve os dados do Insert da Procedure A.

Ou seja como faço para dar Commit ou Rollback por “Sessão ou Transação”.
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

Vais conseguir isso com AUTONOMOUS TRANSACTION.

Cria tua procedure B da seguinte forma:

Selecionar tudo

CREATE OR REPLACE PROCEDURE  b  IS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  etc... etc... etc...
Dessa forma, se você der COMMIT nela, não afetará a procedure A. Inclusive, se você der rollback na procedure A, a B continuará comitada.

Isso é muito util quando se quer fazer algum tipo de LOG, pois mesmo se a aplicação disparar algum ROLLBACK, o LOG continuará gravado certinho...
Responder
  • Informação
  • Quem está online

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