7.1. 从db2迁移时对于substr的处理
从 db2 函数脚本迁移到 hawq 脚本,对于 substr,db2 是按照字节数截取的,但是它的参数是按照一个中文字符占 2 个字节(GBK)设置的,但是 hawq 里面的中文占 3 个字节(UTF8),想不重导数据迁移脚本解答
➢ 解答
查 SELECT convert(substring(CONVERT('我比他说是' ,'utf8', 'gbk'), 3, 6) using gbk_to_utf8);但是 pg8.2.15 里的 convert 的输出不是 bytea,需要些 udf。具体如下:
- CREATE CAST (bytea AS text) WITHOUT FUNCTION;
- CREATE CAST (text AS bytea) WITHOUT FUNCTION;
- SELECT convert(substring(CONVERT('我比他说是' ,'utf8', 'gbk')::bytea, 1, 4)::text using gbk_to_utf8);