제38장 DBMS_SQL_TRANSLATOR

내용 목차

38.1. 개요
38.2. 프러시저와 함수
38.2.1. CREATE_PROFILE
38.2.2. DEREGISTER_ERROR_TRANSLATION
38.2.3. DEREGISTER_SQL_TRANSLATION
38.2.4. DROP_PROFILE
38.2.5. ENABLE_ERROR_TRANSLATION
38.2.6. ENABLE_SQL_TRANSLATION
38.2.7. REGISTER_ERROR_TRANSLATION
38.2.8. REGISTER_SQL_TRANSLATION
38.2.9. SET_ATTRIBUTE
38.2.10. SQL_HASH
38.2.11. SQL_ID
38.2.12. TRANSLATE_ERROR
38.2.13. TRANSLATE_SQL

본 장에서는 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_TRANSLATOR CONSTANT VARCHAR2(30) := 'TRANSLATOR'
  • ATTR_TRANSLATE_NEW_SQL

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

    설정값설명
    TRUE

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

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

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

    ATTR_TRANSLATE_NEW_SQL CONSTANT VARCHAR2(30) := 'TRANSLATE_NEW_SQL'
  • ATTR_RAISE_TRANSLATION_ERROR

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

    ATTR_RAISE_TRANSLATION_ERROR CONSTANT VARCHAR2(30) := 'RAISE_TRANSLATION_ERROR'
  • ATTR_VALUE_TRUE

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

    ATTR_VALUE_TRUE CONSTANT VARCHAR2(30) := 'TRUE'
  • ATTR_VALUE_FALSE

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

    ATTR_VALUE_FALSE CONSTANT VARCHAR2(30) := 'FALSE'

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