Skip to content

DBMS STANDARD

DBMS_STANDARD#

DBMS_STANDARD package provides various sub programs that can be used without specifying the name of the package.

The procedures and functions comprising the DBMS_STANDARD package are in the following table below.

Procedures/Functions Description
DELETING Returns whether the trigger started from DELETE.
INSERTING Returns whether the trigger started from INSERT.
UPDATING Returns whether the trigger started from UPDATE.
UPDATING Returns whether the trigger started from a specific column's UPDATE.

DELETING#

Returns whether the trigger started from DELETE.

Syntax#

BOOLEAN variable := DBMS_STANDARD.DELETING;
BOOLEAN variable := DELETING;

Result Value#

If the trigger started from DELETE, TRUE is returned.

Exception#

There is no exception.

Example#

CREATE TABLE T1 (C1 INTEGER);
CREATE TABLE TMP ( C1 VARCHAR(10) );
INSERT INTO T1 VALUES(1);

CREATE OR REPLACE TRIGGER TRIG1
BEFORE DELETE ON T1
FOR EACH ROW
BEGIN
 IF DELETING THEN
  INSERT INTO TMP VALUES ('DELETE');
 END IF;
END;
/

iSQL> DELETE FROM T1;
1 row deleted.
iSQL> SELECT & FROM TMP;
1 row selected.

INSERTING#

Returns whether the trigger started from INSERT.

Syntax#

BOOLEAN variable := DBMS_STANDARD.INSERTING;
BOOLEAN variable := INSERTING;

Result Value#

If the trigger started from INSERT, TRUE is returned.

Exception#

There is no exception.

Example#

CREATE TABLE T1 (C1 INTEGER);
CREATE TABLE TMP (C1 VARCHAR(10));

CREATE OR REPLACE TRIGGER TRIG1
BEFORE INSERT ON T1
FOR EACH ROW
BEGIN
 IF INSERTING THEN
  INSERT INTO TMP VALUES ('INSERT');
 END IF;
END;
/

iSQL> INSERT INTO T1 VALUES(2);
1 row inserted.
iSQL> SELECT * FROM TMP;
TMP.C1
--------------
INSERT
1 row selected.

UPDATING#

Returns whether the trigger started from UPDATE.

Syntax#

BOOLEAN variable := DBMS_STANDARD.UPDATING;
BOOLEAN variable := UPDATING;

Result Value#

If the trigger started from UPDATE, TRUE is returned.

Exception#

There is no exception.

Example#

CREATE TABLE T1 (C1 INTEGER);
CREATE TABLE TMP (C1 VARCHAR(10));

INSERT INTO T1 VALUES(1);

CREATE OR REPLACE TRIGGER TRIG1
BEFORE UPDATE ON T1
FOR EACH ROW
BEGIN
 IF UPDATING THEN
  INSERT INTO TMP VALUES ('UPDATE');
 END IF;
END;
/

iSQL> UPDATE T1 SET C1 = 2;
1 row updated.
iSQL> SELECT * FROM TMP;
TMP.C1
--------------
UPDATE
1 row selected.

UPDATING (columnName)#

Returns whether the trigger started from a specific column's UPDATE.

Syntax#

BOOLEAN variable := DBMS_STANDARD.UPDATING(COLNAME IN VARCHAR(128));
BOOLEAN variable := UPDATING(COLNAME IN VARCHAR(128));

Parameter#

Name In/Output Data Type Description
COLNAME IN VARCHAR(128) Specifies the name of the column

Result Value#

If the trigger started from a specific coulmn's UPDATE, TRUE is returned.

Exception#

There is no exception.

Example#

CREATE TABLE T1 (C1 INTEGER, C2 INTEGER);
CREATE TABLE TMP (C1 VARCHAR(10));

INSERT INTO T1 VALUES(1, 2);

CREATE OR REPLACE TRIGGER TRIG1
BEFORE UPDATE ON T1
FOR EACH ROW
BEGIN
 IF UPDATING('C1') THEN
  INSERT INTO TMP VALUES ('UPDATE-C1');
ELSE
 INSERT INTO TMP VALUES ('OTHER');
 END IF;
END;
/

iSQL> UPDATE T1 SET C1 = 2;
1 row updated.
iSQL> SELECT * FROM TMP;
TMP.C1
--------------
UPDATE-C1
1 row selected.
iSQL> UPDATE T1 SET C2 = 3;
1 row updated.
iSQL> SELECT * FROM TMP;
TMP.C1
--------------
UPDATE-C1
OTHER
2 rows selected.