On this page
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
从编码UTF8
到LATIN1
进行转换,请执行以下操作:
CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc;
Compatibility
CREATE CONVERSION
是 PostgreSQL 扩展。 SQL 标准中没有CREATE CONVERSION
语句,但是CREATE TRANSLATION
语句的目的和语法非常相似。