CREATE CONVERSION

Name

CREATE CONVERSION -- 定義一個用戶定義的碼制轉換

Synopsis

CREATE [DEFAULT] CONVERSION name
    FOR source_encoding TO dest_encoding FROM funcname

描述

CREATE CONVERSION 定義一種新的編碼轉換。 轉換的名字可以用在 convert 函數內部聲明特定的編碼轉換。 同樣,標記為 DEFAULT 的轉換可以用於在前端和後端之間的自動編碼轉換。 出於這個原因,我們必須定義兩種轉換,從編碼 A 到 B 以及從編碼 B 到 A。

為了可以建立轉換,您必須在函數上有EXECUTE權限並且有在目標模式上的CREATE權限。

參數

DEFAULT

DEFAULT 子句資料表示這種轉換對於從這種源編碼到目的編碼的情況是預設的。在一個模式裡每個編碼對應該只有一個預設編碼。

conversion_name

轉換的名字。轉換名可以用模式修飾。如果沒有,那麼轉換就在目前模式中定義。轉換名在一個模式裡必須唯一。

source_encoding

源編碼名。

dest_encoding

目的編碼名。

funcname

用於執行轉換的函數。這個函數名可以用模式名修飾。 如果沒有,那麼將從路徑中找出這個函數。

此函數必須有如下的樣子:

conv_proc(
integer,	-- 源編碼 ID
integer,	-- 目的編碼 ID
cstring,	-- 源字串(空結尾的 C 字串)
cstring,	-- 目的字串(空結尾的 C 字串)
integer		-- 源字串長度
) RETURNS void;

注意

使用 DROP CONVERSION 刪除用戶定義的轉換。

建立轉換所需要的權限可能在未來的版本中改變。

診斷

CREATE CONVERSION

如果碼制轉換成功建立,返回此訊息。

例子

myfunc 建立一個從編碼 UNICODELATIN1 的轉換:

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

相容性

CREATE CONVERSIONPostgreSQL 的擴展。 在 SQL 標準裡沒有CREATE CONVERSION 語句。

又見

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION