콘텐츠로 이동

DBMS STANDARD

DBMS_STANDARD#

DBMS_STANDARD 패키지는 패키지 이름을 명시하지 않고 사용할 수 있는 다양한 서브 프로그램을 제공한다. DBMS_STANDARD 패키지를 구성하는 프로시저와 함수는 아래의 표와 같다.

프로시저 및 함수 설명
DELETING Trigger가 DELETE로부터 시작한 것인지 여부를 반환한다.
INSERTING Trigger가 INSERT로부터 시작한 것인지 여부를 반환한다.
UPDATING Trigger가 UPDATE로부터 시작한 것인지 여부를 반환한다.
UPDATING (colname) Trigger가 특정 컬럼의 UPDATE로부터 시작한 것인지 여부를 반환한다.

DELETING#

Trigger가 DELETE로부터 시작한 것인지를 반환한다.

구문#

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

결과값#

trigger가 DELETE로부터 시작한 경우 TRUE를 반환한다.

예외#

예외를 발생시키지 않는다.

예제

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#

Trigger가 INSERT로부터 시작한 것인지를 반환한다.

구문#

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

결과값#

trigger가 INSERT로부터 시작한 경우 TRUE를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

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#

Trigger가 UPDATE로부터 시작한 것인지를 반환한다.

구문#

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

결과값#

trigger가 UPDATE로부터 시작한 경우 TRUE를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

(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 (colname)#

Trigger가 특정 컬럼의 UPDATE로부터 시작한 것인지를 반환한다.

구문#

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

파라미터#

이름 입출력 데이터 타입 설명
COLNAME IN VARCHAR(128) 컬럼 이름을 명시한다.

결과값#

trigger가 특정 컬럼의 UPDATE로부터 시작한 경우 TRUE를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

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.