CREATE [DEFAULT] CONVERSION conversion_name FOR source_encoding TO dest_encoding FROM funcname
CREATE CONVERSION 定义一种新的编码转换。 转换的名字可以用在 CONVERT() 函数内部声明特定的编码转换。 同样,标记为 DEFAULT 的转换可以用于在前端和后端之间的自动编码转换。 出于这个原因,我们必须定义两种转换,从编码 A 到 B 以及从编码 B 到 A。
为了可以创建转换,你必须在函数上有执行权限并且有在目标模式上的创建权限。
参数
DEFAULT 子句表示这种转换对于从这种源编码到目的编码 的情况是缺省的。在一个模式里每个编码对应该只有一个缺省编码。
转换的名字。转换名可以用模式修饰。如果没有,那么转换就 在当前模式中定义。转换名在一个模式里必须唯一。
源编码名。
目的编码名。
用于执行转换的函数。这个函数名可以用模式名修饰。 如果没有,那么将从路径中找出这个函数。
此函数必须有如下的样子:
conv_proc( INTEGER, -- 源编码 ID INTEGER, -- 目的编码 ID CSTRING, -- 源字串(空结尾的 C 字串) CSTRING, -- 目的字串(空结尾的 C 字串) INTEGER -- 源字串长度 ) returns VOID;