CREATE CONVERSION 定义字符集之间的转换。转换的名字可以用在 convert
函数内部声明特定的编码转换。同样,标记为 DEFAULT 的转换可以用于在前端和后端之间的自动编码转换。出于这个原因,必须定义两种转换,从编码 A 到 B 和 从编码 B 到 A 。
为了可以创建转换,你必须在函数上有 EXECUTE 权限并且在目标模式上有 CREATE 权限。
DEFAULT 子句表示这种转换是从这种源编码到目标编码的缺省转换。同一个模式里每一对编码应该只有一个缺省编码转换。
转换的名字。转换名可以用模式修饰。如果没有,那么转换就在当前模式中定义。转换名在一个模式里必须唯一。
源编码名
目标编码名
用于执行转换的函数。这个函数名可以用模式名修饰。如果没有,那么将从路径中找出这个函数。
此函数必须有如下的样子:
conv_proc( integer, -- 源编码 ID integer, -- 目的编码 ID cstring, -- 源字符串(空结尾的 C 字符串) internal, -- 目的字符串(用空结尾的C字符串填充) integer -- 源字符串长度 ) RETURNS void;