내용 목차
본 장에서는 DBMS_APPLICATION_INFO 패키지의 기본 개념과 패키지 내의 프러시저를 사용하는 방법을 설명한다.
본 절에서는 DBMS_DBMS_APPLICATION_INFO 패키지에서 제공하는 프러시저를 알파벳 순으로 설명한다.
현재 세션의 client_info 값을 읽는다.
READ_CLIENT_INFO 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_APPLICATION_INFO.READ_CLIENT_INFO ( client_info OUT VARCHAR2 );
파라미터
파라미터 | 설명 |
---|---|
client_info | 세션으로부터 읽을 client info 값이다. |
예제
DECLARE client_info VARCHAR2(64); BEGIN DBMS_APPLICATION_INFO.READ_CLIENT_INFO(client_info); DBMS_OUTPUT.PUT_LINE(client_info); END; /
현재 세션의 모듈 정보와 액션 정보를 읽는 프러시저이다.
READ_MODULE 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_APPLICATION_INFO.READ_MODULE ( module_name OUT VARCHAR2, action_name OUT VARCHAR2 );
파라미터
파라미터 | 설명 |
---|---|
module_name | 현재 세션의 module 값이다. |
action_name | 현재 세션의 action 값이다. |
예제
DECLARE module_name VARCHAR(64); action_name VARCHAR(64); BEGIN DBMS_APPLICATION_INFO.READ_MODULE(module_name, action_name); DBMS_OUTPUT.PUT_LINE(module_name); DBMS_OUTPUT.PUT_LINE(action_name); END; /
현재 세션의 액션 이름을 지정한다.
SET_ACTION 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_APPLICATION_INFO.SET_ACTION ( action_name IN VARCHAR2 );
파라미터
파라미터 | 설명 |
---|---|
action_name | 세션에 저장할 액션 이름이다. 64bytes 이상의 값은 잘린다. |
예제
CREATE TABLE NEW_DATA_TBL(DATA NUMBER) / BEGIN DBMS_APPLICATION_INFO.SET_ACTION('데이터 추가'); INSERT INTO NEW_DATA_TBL VALUES(1); INSERT INTO NEW_DATA_TBL VALUES(2); COMMIT; DBMS_APPLICATION_INFO.SET_ACTION(NULL); END; /
현재 세션의 클라이언트 정보를 지정한다.
SET_CLIENT_INFO 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_APPLICATION_INFO.SET_CLIENT_INFO ( client_info IN VARCHAR2 );
파라미터
파라미터 | 설명 |
---|---|
client_info | 현재 세션 내에 저장될 client_info이다. 64bytes 이상의 값은 잘린다. |
예제
BEGIN DBMS_APPLICATION_INFO.SET_CLIENT_INFO('my_client_info'); END; / SELECT sid, client_info FROM V$SESSION WHERE client_info = 'my_client_info';
현재 세션의 모듈 이름을 지정한다.
SET_MODULE 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_APPLICATION_INFO.SET_MODULE ( module_name IN VARCHAR2, action_name IN VARCHAR2 );
파라미터
파라미터 | 설명 |
---|---|
module_name | 세션에 저장할 모듈 이름이다. 64bytes 이상의 값은 잘린다. |
action_name | 세션에 저장할 액션 이름이다. 64bytes 이상의 값은 잘린다. |
예제
CREATE TABLE NEW_DATA_TBL(DATA NUMBER) / BEGIN DBMS_APPLICATION_INFO.SET_MODULE('데이터 추가', '새로운 데이터 인서트'); INSERT INTO NEW_DATA_TBL VALUES(1); INSERT INTO NEW_DATA_TBL VALUES(2); COMMIT; DBMS_APPLICATION_INFO.SET_MODULE(NULL, NULL); END; /
SYS._VT_SESSION_LONGOPS 뷰의 값을 변경한다.
SET_SESSION_LONGOPS 프러시저의 세부 내용은 다음과 같다.
프로토타입
DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS ( id IN OUT PLS_INTEGER, op_name IN VARCHAR DEFAULT NULL, sofar IN NUMBER DEFAULT 0, totalwork IN NUMBER DEFAULT 0, target_desc IN VARCHAR2 DEFAULT 'unknown target', units IN VARCHAR2 DEFAULT NULL );
파라미터
파라미터 | 설명 |
---|---|
id | 사용할 longops의 ID이다. -1을 넣은 경우 새로운 ID를 할당 받는다. |
op_name | SYS._VT_SESSION_LONGOPS에 저장될 opname column 값이다. 128bytes 이상은 무시된다. |
sofar | SYS._VT_SESSION_LONGOPS에 저장될 sofar column 값이다. |
totalwork | SYS._VT_SESSION_LONGOPS에 저장될 totalwork column 값이다. |
target_desc | SYS._VT_SESSION_LONGOPS에 저장될 target_desc column 값이다. 128bytes 이상은 무시된다. |
units 값이다. | SYS._VT_SESSION_LONGOPS에 저장될 units column 값이다. 128bytes 이상은 무시된다. |
예제
DECLARE idx PLS_INTERGER := -1; BEGIN DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(idx); END; / SELECT * FROM SYS._VT_SESSION_LONGOPS;