关于 YMatrix
标准集群部署
数据写入
数据迁移
数据查询
运维监控
参考指南
工具指南
数据类型
存储引擎
执行引擎
流计算引擎
灾难恢复
系统配置参数
索引
扩展
SQL 参考
常见问题(FAQ)
定义一种新的编码转换。
CREATE [DEFAULT] CONVERSION <name>
FOR <source_encoding> TO <dest_encoding> FROM <function_name>
CREATE CONVERSION 用于定义字符集编码之间的新转换规则。标记为 DEFAULT 的转换规则可用于客户端与服务器之间的自动编码转换。为此,必须同时定义从编码 A 到编码 B 的转换规则,以及从编码 B 到编码 A 的转换规则。
创建转换规则时,必须对该函数拥有 EXECUTE 权限,并对目标模式拥有 CREATE 权限。
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;
使用 DROP CONVERSION 删除用户定义的转换。
创建转换所需的权限可能在功能版本发布时发生变更。
请注意,在本版本数据库中,用户自定义转换中使用的用户自定义函数必须定义为IMMUTABLE。所有自定义函数的编译代码(共享库文件)必须放置在数据库阵列中每个主机(协调节点及所有分区节点)的相同位置。该位置还必须位于LD_LIBRARY_PATH环境变量中,以便服务器能够定位这些文件。
使用 myfunc 函数实现从 UTF8 编码转换为 LATIN1 编码:
CREATE CONVERSION myconv FOR 'UTF8' TO 'LATIN1' FROM myfunc;
CREATE CONVERSION 是数据库扩展功能。SQL 标准中不存在 CREATE CONVERSION 语句,但存在功能和语法非常相似的 CREATE TRANSLATION 语句。