DBMS 1

DA, SQL, DB보안 등 실무자를 위한 위한 DB기술 바이블!

DBMS_APPLICATION_INFO

DBMS 1
Tibero 가이드
Tibero System Package Guide
DBMS_APPLICATION_INFO
작성자
dataonair
작성일
2021-02-18 10:27
조회
1304





제2장DBMS_APPLICATION_INFO




내용 목차






2.1. 개요

2.2. 프로시저


2.2.1. READ_CLIENT_INFO

2.2.2. READ_MODULE

2.2.3. SET_ACTION

2.2.4. SET_CLIENT_INFO

2.2.5. SET_MODULE

2.2.6. SET_SESSION_LONGOPS






2.1. 개요




DBMS_APPLICATION_INFO는 V$SESSION, SYS._VT_SESSION_LONGOPS 뷰의 값을 변경하는 패키지이다.




2.2. 프로시저




본 절에서는 DBMS_DBMS_APPLICATION_INFO 패키지에서 제공하는 프로시저를 알파n">











2.2.1. READ_CLIENT_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;
    /





2.2.2. READ_MODULE




현재 세션의 모듈 정보와 액션 정보를 읽는 프로시저이다.

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;
    /





2.2.3. SET_ACTION




현재 세션의 액션 이름을 지정한다.

SET_ACTION 프로시저의 세부 내용은 다음과 같다.

  • 프로토타입
    DBMS_APPLICATION_INFO.SET_ACTION(action_name         IN          VARCHAR2)
  • 파라미터

    파라미터 설명
    action_name 세션에 저장할 액션 이름이다. 64byte 이상의 값은 잘린다.
  • 예제
    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;
    /





2.2.4. SET_CLIENT_INFO




현재 세션의 클라이언트 정보를 지정한다.

SET_CLIENT_INFO 프로시저의 세부 내용은 다음과 같다.

  • 프로토타입
    DBMS_APPLICATION_INFO.SET_CLIENT_INFO(client_info         IN          VARCHAR2)
  • 파라미터

    파라미터 설명
    client_info 현재 세션 내에 저장될 client_info 이다. 64byte 이상의 값은 잘린다.
  • 예제
    BEGIN 
    DBMS_APPLICATION_INFO.SET_CLIENT_INFO('my_client_info');
    END;
    /

    SELECT sid, client_info FROM V$SESSION WHERE client_info = 'my_client_info';





2.2.5. SET_MODULE




현재 세션의 모듈 이름을 지정한다.

SET_MODULE 프로시저의 세부 내용은 다음과 같다.

  • 프로토타입
    DBMS_APPLICATION_INFO.SET_MODULE(
    module_name IN VARCHAR2,
    action_name IN VARCHAR2)
  • 파라미터

    파라미터 설명
    module_name 세션에 저장할 모듈 이름이다. 64byte 이상의 값은 잘린다.
    action_name 세션에 저장할 액션 이름이다. 64byte 이상의 값은 잘린다.
  • 예제
    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;
    /





2.2.6. SET_SESSION_LONGOPS




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 값이다.128byte 이상은 무시된다.
    sofar SYS._VT_SESSION_LONGOPS에 저장될 sofar column 값이다.
    totalwork SYS._VT_SESSION_LONGOPS에 저장될 totalwork column 값이다.
    target_desc SYS._VT_SESSION_LONGOPS에 저장될 target_desc column 값이다.128byte 이상은 무시된다.
    units 값이다. SYS._VT_SESSION_LONGOPS에 저장될 units column 값이다.128byte 이상은 무시된다.
  • 예제
    DECLARE
    idx PLS_INTERGER := -1;

    BEGIN
    DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS(idx);
    END;
    /
    SELECT * FROM SYS._VT_SESSION_LONGOPS;