제32장 DBMS_SESSION

내용 목차

32.1. 개요
32.2. 프러시저와 함수
32.2.1. CLEAR_ALL_CONTEXT
32.2.2. CLEAR_CONTEXT
32.2.3. CLEAR_IDENTIFIER
32.2.4. LIST_CONTEXT
32.2.5. SET_CONTEXT
32.2.6. SET_IDENTIFIER
32.2.7. UNIQUE_SESSION_ID
32.2.8. CLOSE_DATABASE_LINK
32.2.9. IS_ROLE_ENABLED
32.2.10. SET_ROLE

본 장에서는 DBMS_SESSION 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명한다.

DBMS_SESSION 세션의 식별자를 설정하고, 시스템에 고유한 세션의 식별자를 가져오는데 사용되는 패키지이다.

본 절에서는 DBMS_SESSION 패키지에서 제공하는 프러시저와 함수를 알파벳 순으로 설명한다.

이 프러시저는 CREATE CONTEXT DDL을 통해 지정된 패키지 내에서만 호출할 수 있다. 설정된 속성 값은 세션이 유지되는 동안 보존된다. 만일 해당 문맥의 속성이 이미 설정되어 있을 경우 SET_CONTEXT 호출은 해당 속성값을 덮어쓴다.

SET_CONTEXT 프러시저의 세부 내용은 다음과 같다.

  • 프로토타입

    DBMS_SESSION.SET_CONTEXT
    (
        namespace IN VARCHAR2,
        attribute IN VARCHAR2,
        value     IN VARCHAR2,
        username  IN VARCHAR2 DEFAULT NULL,
        client_id IN VARCHAR2 DEFAULT NULL
    )
  • 파라미터

    파라미터설명
    namespace속성값을 설정할 문맥의 네임스페이스 이름이다.
    attribute해당 문맥에서의 속성 이름이다.
    value설정할 속성에 대한 속성값이다.
    username

    해당 속성에 접근할 수 있는 데이터베이스 사용자명이다.

    GLOBALLY ACCESSED인 문맥에 대한 속성을 설정할 때만 사용한다. 이 값을 설정하게 되면 해당 사용자만 이 속성에 접근할 수 있으며, 설정하지 않으면 모든 사용자가 속성에 접근할 수 있다. (기본값: NULL)

    client_id

    해당 속성에 대해 애플리케이션에서 사용하는 client_id를 명시할 수 있다.

    대소문자를 구별하며 SET_IDENTIFIER 프러시저를 호출했을 때 명시했던 값과 일치해야 한다. GLOBALLY ACCESSED인 문맥에 대한 속성을 설정할 때만 사용한다. (기본값: NULL)

  • 예제

    create or replace package body sec_pkg is
        procedure set_attr (name varchar2, attr varchar2, val varchar2) as
        begin
            dbms_session.set_context (name, attr, val);
        end;
    end;
    /