DBMS_UTILITY

DBMS_UTILITY 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명합니다.

개요

DBMS_UTILITY은 여러 가지 유용한 기능들을 제공합니다.

타입

본 절에서는 DBMS_UTILITY 패키지에서 제공하는 별도 정의된 타입들을 알파벳 순으로 설명합니다.

UNCL_ARRAY

문자열의 배열입니다. 문자열의 최대 길이는 227 byte입니다.

UNCL_ARRAY 타입의 세부 내용은 다음과 같습니다.

  • 프로토타입

TYPE uncl_array IS TABLE OF VARCHAR2(227) INDEX BY BINARY_INTEGER;

LNAME_ARRAY

문자열의 배열입니다. 문자열의 최대 길이는 4000byte입니다.

LNAME_ARRAY 타입의 세부 내용은 다음과 같습니다.

  • 프로토타입

TYPE lname_array IS TABLE OF VARCHAR2(4000) INDEX BY BINARY_INTEGER;

MAXNAME_ARRAY

문자열의 배열입니다. 문자열의 최대길이는 32767byte입니다.

MAXNAME_ARRAY 타입의 세부 내용은 다음과 같습니다.

  • 프로토타입

프러시저와 함수

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

COMMA_TO_TABLE

테이블 이름들이 쉼표로 구분되어 나열된 문자열을 분석하여 테이블 이름들을 구성 요소로 하는 인덱스 테이블로 변환하는 프러시저입니다.

COMMA_TO_TABLE 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

list

  • 쉼표로 구분되어 있는 테이블 이름들의 목록 문자열

  • 테이블 이름들은 a [. b [. c]][ @ d ]로 설정 (a, b, c, d는 따옴표로 묶이거 나 묶이지 않은 식별자 형태의 문자열)

  • 이때 입력값이 NULL값일 경우에도 콤마(,)로 구분.

  • 예를 들어 입력값이 ',a'거나 'a,'인 경우 각각 앞, 뒤에 NULL 값이 들어온 것으로 간주

tablen

생성되는 이름들의 개수

tab

  • 테이블 이름들을 구성 요소로 갖는 인덱스 테이블

  • uncl_array와 lname_array를 입력 값으로 받을 수 있음

  • 예제

CURRENT_INSTANCE

현재 인스턴스의 instance number를 반환해주는 함수입니다.

CURRENT_INSTANCE 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 예제

COMPLIE_SCHEMA

지정된 스키마 안의 모든 프러시저, 함수, 패키지, 뷰, 트리거를 컴파일해 주는 프러시저입니다. 이 프러시저를 호출하는 유저가 지정된 스키마에 대한 recompile 권한이 없으면 원하는 결과를 얻지 못할 수 있습니다.

COMPILE_SCHEMA 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

schema

컴파일할 스키마의 이름

compile_all

  • TRUE : 스키마의 모든 오브젝트들을 컴파일. (기본값)

  • FALSE : 스키마 내 INVALID한 상태의 오브젝트들만 컴파일.

reuse_setting

  • TRUE : 오브젝트의 세션 설정을 재사용

  • FALSE : 현재 세션의 설정이 적용됨 (기본값)

  • 예제

EXEC_DDL_STATEMENT

DDL 명령을 실행하는 기능을 제공하는 함수입니다.

EXEC_DDL_STATEMENT 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

parse_string

실행할 DDL 명령을 지정하는 VARCHAR2 유형의 입력 인수

  • 예제

FORMAT_CALL_STACK

콜 스택의 내용을 문자열로 반환하는 함수입니다. 반환 문자열이 32767bytes를 초과하는 경우 원하는 결과를 얻지 못할 수 있습니다.

FORMAT_CALL_STACK 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 예제

FORMAT_ERROR_BACKTRACE

BACKTRACE 에러 메시지 문자열을 반환하는 함수입니다. 반환 문자열이 712bytes를 초과하는 경우 원하는 결과를 얻지 못할 수 있습니다.

FORMAT_ERROR_BACKTRACE 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 예제

FORMAT_ERROR_STACK

에러 스택의 내용을 문자열로 반환하는 함수입니다. 반환 문자열이 712bytes를 초과하는 경우 원하는 결과 를 얻지 못할 수 있습니다.

FORMAT_ERROR_STACK 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 예제

FORMAT_VM_MM

PSM 엔진에서 사용 중인 psm value와 refv 의 목록을 반환환하는 함수입니다.

FORMAT_VM_MM 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 예제

GET_HASH_VALUE

주어진 문자열의 해시 값을 구하는 함수입니다.

GET_HASH_VALUE 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

name

해시 값을 얻고자 하는 문자열

base

해시 값의 시작점

hash_size

해시 테이블의 크기. 크기는 1 이상이어야 함.

  • 예제

GET_TIME

현재 시간을 1/100초 단위의 숫자로 표현하는 함수입니다. 일반적으로 시작과 끝에 호출하여 소요 시간을 측정하는 데 사용됩니다.

GET_TIME 함수의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 예제

GET_PARAMETER_VALUE

지정된 초기 파라미터의 값을 구하는 함수이다.

GET_PARAMETER_VALUE 함수의 세부 내용은 다음과 같다.

  • 프로토타입

  • 파라미터

파라미터
설명

parnam

값을 얻고자 하는 파라미터 이름

intval

integer 파라미터의 값 혹은 string 파라미터의 길이 값

strval

string 파라미터의 값

  • 예제

TABLE_TO_COMMA

테이블 이름들을 구성 요소로 하는 인덱스 테이블을 분석하여 테이블 이름들이 쉼표로 구분되어 나열된문자열로 변환하는 프러시저입니다.

TABLE_TO_ COMMA 프러시저의 세부 내용은 다음과 같습니다.

  • 프로토타입

  • 파라미터

파라미터
설명

tab

  • 테이블 이름들을 구성 요소로 갖는 인덱스 테이블

  • uncl_array와 lname_array를 입력 값으로 받을 수 있음

tablen

  • 생성되는 이름들의 개수

  • 이때 tab에 변수를 자체적으로 할당할 경우 변수를 할당한 부분의 앞 부분이 비어있더라도 NULL값이 할당된것으로 간주하여 tablen에 값을 부여

  • 예를 들어 tab(3) := 'a';를 통해 테이블의 3번째 값에 a를 할당한 경우 tab(1)과 tab(2)가 비어있어도 NULL 값이 할당된 것으로 간주하여 tablen의 결과는 3 이 됨

list

  • 콤마로 구분되어 있는 테이블 이름들의 목록 문자열

  • 이때 tab에 변수를 자체적으로 할당할 경우, 변수를 할당한 부분의 앞 부분이 비어있더라도 NULL값이 할당된것으로 간주하여 list에 값을 부여

  • 예를 들어 tab(3) := 'a';를 통해 테이블의 3번째 값에 a를 할당한 경우 tab(1)과 tab(2) 가 비어있어도 NULL 값이 할당된 것으로 간주하여 list의 결과는 ',,a'가 됨

  • 예제

Last updated