TeradataLatin和Unicode字符集转换(自定义函数udf_w936to16和udf16tow936)

Posted badboy200800

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TeradataLatin和Unicode字符集转换(自定义函数udf_w936to16和udf16tow936)相关的知识,希望对你有一定的参考价值。

1.安装UDF函数

(1)下载GBK2Unicode.zip,地址为https://downloads.teradata.com/tag/udf

(2)windows或者Linux环境下使用bteq进行安装。

进入文件所在目录,输入如下命令(windows中使用dos)

bteq .logon 192.168.253.222/citic_edw

输入口令后,输入如下命令

database syslib;
.run file=16_936.sql

验证syslib库中是否存在udf_w936to16和udf16tow936两个UDF,存在则说明安装成功。

2.Latin字符集字段中文值,插入到Unicode字符集字段

//注意:使用Latin字符集连接的session客户端执行如下SQL
create multiset table test_latin(
col1 varchar(100)  character set latin
);
insert into test_latin values(我是中文);

//注意:使用Unicode字符集连接的session客户端执行如下SQL
create multiset table test_unicode(
col1 varchar(100)  character set unicode
,col2 varchar(100)  character set unicode
);
insert into test_unicode select udf_w936to16(col1,‘‘),udf_w936to16(col1,‘‘) from test_latin;

单独执行如下select语句时(无insert),会报错误 Select Failed 9990:Response Row size exceeds 64k bytes and is incompatible with the Client software.

select udf_w936to16(col1,‘‘),udf_w936to16(col1,‘‘) from test_latin;

原因说明:UDF函数udf_w936to16的返回值默认类型为varchar(16000)故需要显示转换,或者隐式转换才可以。

 

以上是关于TeradataLatin和Unicode字符集转换(自定义函数udf_w936to16和udf16tow936)的主要内容,如果未能解决你的问题,请参考以下文章

Java 和 Kotlin 中,字符转Unicode,Unicode 转10进制

如何将单片机中字符串转unicode码

转字符编码笔记:ASCII,Unicode和UTF-8

十六进制字符串转UNICODE 和 互转

Unicode 转~!!!!!

Unicode 和 UTF-8 有何区别(转)