1.安裝UDF函數
(1)下載GBK2Unicode.zip,地址為https://downloads.teradata.com/tag/udf
(2)windows或者Linux環境下使用bteq進行安裝。
進入文件所在目錄,輸入如下bteq命令登錄數據庫(windows中使用dos)
bteq .logon 192.168.253.222/dbc,dbc;
輸入如下命令安裝UDF
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)故需要顯示轉換,或者隱式轉換才可以。