CREATE CONVERSION

CREATE CONVERSION-定义新的编码转换

Synopsis

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

Description

CREATE CONVERSION定义了字符集编码之间的新转换。另外,标记为DEFAULT的转换可用于 Client 端和服务器之间的自动编码转换。为此,必须定义两次转换,从编码 A 到 B *和从编码 B 到 A *。

为了能够创建转换,您必须在函数上具有EXECUTE特权,并且在目标架构上具有CREATE特权。

Parameters

  • DEFAULT

    • DEFAULT子句指示此转换是此特定源到目标编码的默认转换。模式中的编码对应该只有一种默认编码。
  • name

    • 转换的名称。转换名称可以是模式限定的。如果不是,则在当前模式中定义转换。转换名称在模式中必须唯一。
  • source_encoding

    • 源编码名称。
  • dest_encoding

    • 目标编码名称。
  • function_name

    • 用于执行转换的功能。函数名称可以是模式限定的。如果不是,将在路径中查找该功能。

该函数必须具有以下签名:

conv_proc(
    integer,  -- source encoding ID
    integer,  -- destination encoding ID
    cstring,  -- source string (null terminated C string)
    internal, -- destination (fill with a null terminated C string)
    integer   -- source string length
) RETURNS void;

Notes

使用DROP CONVERSION删除用户定义的转化。

创建转换所需的特权可能会在将来的版本中更改。

Examples

要使用myfunc从编码UTF8LATIN1进行转换,请执行以下操作:

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

Compatibility

CREATE CONVERSION是 PostgreSQL 扩展。 SQL 标准中没有CREATE CONVERSION语句,但是CREATE TRANSLATION语句的目的和语法非常相似。

See Also

ALTER CONVERSION, CREATE FUNCTION, DROP CONVERSION