DBMS_SQL_TRANSLATOR

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

개요

DBMS_SQL_TRANSLATOR 패키지를 이용해 SQL 번역 프로파일을 생성하고 이용할 수가 있습니다. DBMS_SQL_TRANSLATOR 패키지는 호출자 권한으로 수행되는 패키지입니다. 그러므로 호출자가 이 패 키지의 함수를 통해 번역기 패키지 함수를 호출할 경우, 호출자는 번역기 패키지에 대해 EXECUTE 권한을 가지고 있어야 합니다.

번역기 패키지는 다음의 2개의 프러시저를 가지고 있는 PSM 패키지여야 합니다.

PROCEDURE TRANSLATE_SQL
(
    sql_text         IN CLOB,
    translated_text  OUT CLOB
);

PROCEDURE TRANSLATE_ERROR
(
    error_code           IN PLS_INTEGER,
    translated_code      OUT PLS_INTEGER,
    translated_sqlstate  OUT VARCHAR2
);

번역기 패키지 함수의 각 인자에 대한 설명은 다음과 같습니다.

필드 이름
설명

sql_text

번역할 SQL 문

translated_text

번역된 SQL 문

error_code

번역할 Tibero 에러 코드

translated_code

번역된 에러 코드

translated_sqlstate

번역된 SQLSTATE

다음은 DBMS_SQL_TRANSLATOR 패키지 내에 정의된 상수입니다. 이 상수들은 SQL 번역 프로파일의 속성을 지정할 때 이용합니다.

  • ATTR_TRANSLATOR

번역기 패키지를 설정할 때 사용합니다. 패키지는 '[스키마.]패키지_이름' 형식으로 설정할 수 있습니다. 디폴 트로 이 속성은 지정되어 있지 않습니다.

  • ATTR_FOREIGN_SQL_SYNTAX

이기종 SQL 구문을 작성할 때 사용합니다. 디폴트로 이 속성은 참입니다.

  • ATTR_TRANSLATE_NEW_SQL

번역기 패키지를 사용해 새로운 SQL 문 (혹은 에러 코드) 을 번역할지를 결정합니다. (기본값: TRUE)

설정값
설명

TRUE

  • 맞춤 번역이 등록되어 있지 않은 새로운 SQL문 (혹은 에러 코드) 을 번역기 패키지를 사용해 번역하고, 번역 결과를 맞춤 번역으로 등록

  • 맞춤 번역은 translator에 의해 자동으로 번역되거나, register_sql_translation등의 함수를 통해서 사용자가 직접 등록할 수 있음

FALSE

맞춤 번역이 등록되어 있지 않으면 (디폴트로) 에러를 발생시킴

  • ATTR_RAISE_TRANSLATION_ERROR

맞춤 번역이 존재하지 않을 때 (그리고 번역기 패키지를 사용할 수 없을 때) 에러를 발생 시킬 지에 대한 여부를 결정합니다. 디폴트로 이 속성은 거짓입니다.

  • ATTR_LOG_TRANSLATION_ERROR

번역 과정 중 실행 오류 발생 시에 해당 오류를 로그에 기록할 지에 대한 여부를 결정합니다. 디폴트로 이 속성은 거짓입니다.

  • ATTR_TRACE_TRANSLATION

번역 과정 중 내부 동작 과정을 추적하기 위해 사용합니다. 디폴트로 이 속성은 거짓입니다.

  • ATTR_EDITIONABLE

Edition 단위의 번역기 관리 여부를 결정합니다. 디폴트로 이 속성은 참입니다.

  • ATTR_VALUE_TRUE 속성에 참을 설정하려면 이 상수를 사용할 수 있습니다.

  • ATTR_VALUE_FALSE 속성에 거짓을 설정하려면 이 상수를 사용할 수 있습니다.

프러시저와 함수

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

CREATE_PROFILE

SQL 번역 프로파일을 생성합니다. SQL 번역 프로파일은 별도의 네임스페이스를 가지는 스키마 객체입니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

생성할 프로파일의 이름. '[스키마.]이름' 형식으로 설정이 가능

DEREGISTER_ERROR_TRANSLATION

해당 에러 코드의 맞춤 번역 등록 내용을 제거합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

error_code

등록을 제거할 에러 코드

DEREGISTER_SQL_TRANSLATION

해당 SQL 문의 맞춤 번역 등록 내용을 제거합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

sql_text

등록을 제거할 SQL 문

DROP_PROFILE

SQL 번역 프로파일을 제거합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

제거할 프로파일의 이름

ENABLE_ERROR_TRANSLATION

기 등록된 에러 코드의 맞춤 번역을 활성화합니다(번역기에서 번역하는 경우에 사용할 수 있도록 합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

error_code

에러 코드

enable

활성화시킬지 혹은 비활성화시킬지를 설정

ENABLE_SQL_TRANSLATION

기 등록된 SQL 문의 맞춤 번역을 활성화합니다(번역기에서 번역하는 경우에 사용할 수 있도록 합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

sql_text

SQL 문

enable

활성화시킬지 혹은 비활성화시킬지를 설정

2.7. REGISTER_ERROR_TRANSLATION

해당 에러 코드에 대한 맞춤 번역을 등록합니다. 번역 프로파일을 통해 에러 코드를 번역할 때, 먼저 해당 에 러 코드에 대한 맞춤 번역이 등록되어 있는지를 검사해서, 있으면 해당 번역 내용을 돌려주고 그렇지 않을 경우는 번역기 패키지의 함수를 수행하게 됩니다.

해당 에러 코드에 대한 맞춤 번역이 이미 등록되어 있을 경우는 새로 인자로 전달되는 내용으로 번역 내용이 업데이트됩니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

error_code

번역할 Tibero 에러 코드

translated_code

번역된 에러 코드

translated_sqlstate

번역된 SQLSTATE

enable

활성화시킬지 혹은 비활성화시킬지를 설정

REGISTER_SQL_TRANSLATION

해당 SQL 문에 대한 맞춤 번역을 등록합니다.번역 프로파일을 통해 SQL 문을 번역할 때, 먼저 해당 SQL 문 에 대한 맞춤 번역이 등록되어 있는지를 검사해서, 있으면 해당 번역 내용을 돌려주고 그렇지 않을 경우는 번역기 패키지의 함수를 수행하게 됩니다.

해당 SQL 문에 대한 맞춤 번역이 이미 등록되어 있을 경우는 새로 인자로 전달되는 내용으로 번역 내용이 업데이트됩니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

sql_text

번역할 SQL 문

translated_text

번역된 SQL 문

enable

활성화시킬지 혹은 비활성화시킬지를 설정

SET_ATTRIBUTE

SQL 번역 프로파일의 속성값을 지정합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

profile_name

프로파일의 이름

attribute_name

설정할 속성의 이름

attribute_value

설정할 속성값

SQL_HASH

인자로 주어진 SQL 문의 해시값을 계산합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

sql_text

해시값을 계산할 SQL 문

SQL_ID

인자로 주어진 SQL 문의 SQL_ID 값을 반환합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

sql_text

SQL_ID 를 구할 SQL 문

TRANSLATE_ERROR

해당 에러 코드를 번역합니다. 사용할 SQL 번역 프로파일은 ALTER SESSION SET SQL_TRANSLA TION_PROFILE 명령을 통해 프러시저를 수행하기에 앞서 미리 지정되어야만 합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

error_code

번역할 Tibero 에러 코드

translated_code

번역된 에러 코드

translated_sqlstate

번역된 SQLSTATE

TRANSLATE_SQL

해당 SQL 문을 번역합니다. 사용할 SQL 번역 프로파일은 ALTER SESSION SET SQL_TRANSLATION_PROFILE 명령을 통해 프러시저를 수행하기에 앞서 미리 지정되어야만 합니다.

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

  • 프로토타입

  • 파라미터

파라미터
설명

sql_text

번역할 SQL 문

translated_text

번역된 SQL 문

Last updated