【Teradata】Latin和Unicode字符集轉換(自定義函數udf_w936to16和udf16tow936)


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)故需要顯示轉換,或者隱式轉換才可以。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM