PostgreSQL 8.2.3 中文文档
后退快退快进前进

CREATE CONVERSION

名称

CREATE CONVERSION -- 定义一个新的的编码转换

语法

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

描述

CREATE CONVERSION 定义字符集之间的转换。转换的名字可以用在 convert 函数内部声明特定的编码转换。同样,标记为 DEFAULT 的转换可以用于在前端和后端之间的自动编码转换。出于这个原因,必须定义两种转换,从编码 A 到 B 从编码 B 到 A 。

为了可以创建转换,你必须在函数上有 EXECUTE 权限并且在目标模式上有 CREATE 权限。

参数

DEFAULT

DEFAULT 子句表示这种转换是从这种源编码到目标编码的缺省转换。同一个模式里每一对编码应该只有一个缺省编码转换。

name

转换的名字。转换名可以用模式修饰。如果没有,那么转换就在当前模式中定义。转换名在一个模式里必须唯一。

source_encoding

源编码名

dest_encoding

目标编码名

funcname

用于执行转换的函数。这个函数名可以用模式名修饰。如果没有,那么将从路径中找出这个函数。

此函数必须有如下的样子:

conv_proc(
    integer,  -- 源编码 ID
    integer,  -- 目的编码 ID
    cstring,  -- 源字符串(空结尾的 C 字符串)
    internal, -- 目的字符串(用空结尾的C字符串填充)
    integer   -- 源字符串长度
) RETURNS void;

注意

DROP CONVERSION 删除用户定义的转换。

创建转换所需要的权限可能在未来的版本中改变。

例子

myfunc 创建一个从 UTF8 编码到 LATIN1 编码的转换:

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

兼容性

CREATE CONVERSION 是 PostgreSQL 的扩展。在 SQL 标准里没有 CREATE CONVERSION 语句。

又见

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION

后退首页前进
CREATE CONSTRAINT TRIGGER上一级CREATE DATABASE