zoukankan      html  css  js  c++  java
  • 【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)故需要显示转换,或者隐式转换才可以。

  • 相关阅读:
    C#中一行代码实现18位数字时间戳转换为DateTime
    Java,Python,前端,Linux,公众号等5T编程资源整理免费下载
    Winform中使用FastReport的DesignReport时怎样给通过代码Table添加数据
    一、渐变边框
    一、Dev单元格
    一、Dev
    一、
    三、数据-1
    三、接口数据格式-2
    二、GitLab使用
  • 原文地址:https://www.cnblogs.com/badboy200800/p/11122342.html
Copyright © 2011-2022 走看看