CREATE CONVERSION

CREATE CONVERSION — 새 인코딩 변환 규칙 정의

요약

CREATE [ DEFAULT ] CONVERSION 이름
    FOR 원래인코딩 TO 대상인코딩 FROM 함수이름

설명

CREATE CONVERSION 명령은 두 인코딩 간 문자 세트 변환 규칙을 만든다.

DEFAULT 옵션을 지정해서 클라이언트와 서버가 변환을 자동으로 할 수 있게 한다. 이 변환 규칙은 반드시 A에서 B, B에서 A, 쌍방 두 가지 모두 만들어야 한다.

지정하는 함수에 대해서는 EXECUTE 권한, 만들어질 변환 규칙의 스키마에 대해서는 CREATE 권한이 있어야 한다.

매개 변수

DEFAULT

DEFAULT 옵션은 원래 인코딩을 대상 인코딩으로 바꿀 때 사용할 이 변환 규칙을 기본으로 설정한다. 한 스키마 안에서는 이 인코딩 쌍에 대한 기본 변환 규칙은 하나만 있어야 한다.

이름

인코딩 변환 규칙 이름. 스키마 이름을 포함할 수도 있음. 스키마 이름을 지정하지 않으면, 현재 스키마 안에 만든다. 해당 변환 규칙 이름은 해당 스키마 안에서 유일해야 한다.

원래인코딩

원래 인코딩 이름.

대상인코딩

대상 인코딩 이름.

함수이름

인코딩 변환 작업을 수행할 함수 이름. 스키마 이름을 포함 할 수 있음. 스키마 이름이 빠지면, search_path 설정값 기준으로 함수를 찾는다.

사용할 함수는 다음과 같이 정의된다:

conv_proc(
    integer,  -- 원래 인코딩 ID
    integer,  -- 대상 인코딩 ID
    cstring,  -- 원본 문자열 (null로 끝나는 C 문자열)
    internal, -- 변환된 문자열 (null 마침 문자가 포함된 C 문자열)
    integer   -- 원본 문자열 길이
) RETURNS void;

참고

SQL_ASCII 인코딩은 하드코딩 되어 있기 때문에, 두 인코딩이 동시에, SQL_ASCII 인 변환 규칙은 만들 수 없다.

사용자 정의 인코딩 변환 규칙은 DROP CONVERSION 명령으로 지운다.

다음 버전에서는 인코딩 변환 규칙을 만드는데 필요한 권한이 바뀔 수도 있다.

예제

myfunc 함수를 이용해서 UTF8에서 LATIN1 인코딩으로 바꾸는 인코딩 변환 규칙을 만드는 경우:

CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc;

호환성

CREATE CONVERSION 구문은 PostgreSQL 확장 기능이다. CREATE CONVERSION 구문은 표준 SQL에 없지만, 같은 일을 하고, 문법도 비슷한 CREATE TRANSLATION 표준 구문이 있다.

관련 항목

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION