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
  

Mensagemem Qua, 05 Abr 2006 2:40 pm

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”.
Lekich
Localização: SP

Mensagemem Qua, 05 Abr 2006 3:20 pm

Vais conseguir isso com AUTONOMOUS TRANSACTION.

Cria tua procedure B da seguinte forma:
Código: Selecionar todos
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...
dr_gori
Localização: Portland, OR USA

Thomas F. G

Você já respondeu a dúvida de alguém hoje?
http://glufke.net/oracle/search.php?search_id=unanswered


  • Veja também
    Respostas
    ExibiÇões
    Última mensagem


    Voltar para PL/SQL

    Quem está online

    Usuários navegando neste fórum: Google Adsense [Bot] e 9 visitantes