Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

How to Rollback or Stop transaction from a Trigger

AthurumithuruOct 18 2016 — edited Oct 20 2016

Hi,

I just want to perform rollback cancel a transaction during a trigger. But triggers not allowed to do a rollback. Pls help..

CREATE OR REPLACE TRIGGER tri_AvoidBulkLocInvDuplication

  BEFORE INSERT OR UPDATE OF BULK_INV_ID

  ON BULK_INVOICE_HEADER

  FOR EACH ROW

DECLARE

  strLocInvID   VARCHAR2 (15) := '';

BEGIN

  IF INSERTING OR UPDATING THEN

  BEGIN

  SELECT LOC_INV_ID

   INTO strLocInvID

   FROM LOCAL_INVOICE_HEADER

  WHERE LOC_INV_ID = :new.BULK_INV_ID AND STATUS != 'Deleted';

  EXCEPTION

  WHEN NO_DATA_FOUND THEN

  strLocInvID := 'NO DATA';

  END;

  IF strLocInvID = 'NO DATA' THEN

  COMMIT;

            DBMS_OUTPUT.PUT_LINE ('Duplicated Invoice Not Found on Local Invoice');

  ELSE

  RETURN;

            -- Rollback;

            DBMS_OUTPUT.PUT_LINE ('RECORD ROLLBACKED');

  END IF;

  END IF;

END;

/

Rgds,

Athurumithuru.

This post has been answered by Athurumithuru on Oct 19 2016
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Nov 17 2016
Added on Oct 18 2016
7 comments
4,240 views