【Teradata】Latin和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)故需要显示转换,或者隐式转换才可以。

原文地址:https://www.cnblogs.com/badboy200800/p/11122342.html

时间: 2024-08-01 21:41:41

【Teradata】Latin和Unicode字符集转换(自定义函数udf_w936to16和udf16tow936)的相关文章

FastReport调用Delphi中的人民币大写转换自定义函数

FastReport调用Delphi中的人民币大写转换自定义函数 FastReport调用Delphi中的人民币大写转换自定义函数 function TJzpzEdit1.MoneyCn(mmje: Double): string; const s1: string = '零壹贰叁肆伍陆柒捌玖'; s2: string = '分角元拾佰仟万拾佰仟亿拾佰仟万'; function StrTran(const S, s1, s2: string): string; begin Result := S

通过编写串口助手工具学习MFC过程——(三)Unicode字符集的宽字符和多字节字符转换

通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个串口助手再次熟悉一下MFC,并做了一下记录,以便方便以后查阅.做的过程中多是遇到问题直接百度和谷歌搜索来的,所以很多都是不求甚解,知其然不知其所以然.另外做此工具只是为了熟悉了解,许多功能还没有完善!(开发工具VS2008) (三)Unicode字符集的宽字符和多字节字符转换 在上一节<(二)通过&qu

mysql流程控制、自定义函数、存储过程

修改结束符dilimiter $$ 分支 if 条件 then 语句 else if 条件 then 语句 else 语句 end if; 循环 while 条件 do 循环体 end while; 用户自定义变量 典型的变量:字段名就是变量,还有一些系统内置的变量 用户自定义变量需要使用 @作为变量名的前缀,用于区分是否是系统内置变量! set 变量名=变量值! //赋值set @height=10; 取值 //select @height; 系统内置函数 rand(),生成随机数的函数,得到

Unicode字符集下CString与char *转换 (解决中文乱码等)(转)

UniCode 下 CString 转 char* 的方法的文章有很多,但是大部分都是在互相转载,看了那么多资料,仍然没有解决乱码的问题,后来从一个论坛的一条回复里面找到了正确的方法,特此拿出来与大家分享. 先总结一下网上找到的三种转换的方法: 方法一:使用函数setlocale setlocale(LC_ALL,"chs"); 需要包含头文件#include<locale.h> 此方法的思路是配置地域化信息.通常在需要输入输出中文的时候设置一下,就没问题了,setloca

如何利用自定义函数把阳历转换成阴历

数据库保存的是阳历日期,有时候会遇到把阳历换成阴历的需求,例如下图把阳历转换成阴历. 这个问题是我在开发报表过程中遇到的一个小需求,利用的工具是FineReport8.0版本,解决思路是首先定义一个可以将阳历转为阴历的类,然后自定义FineReport函数,在run方法中获取年月日参数并调用之前的类将阳历转为阴历,最终返回给报表. 实现步骤: 1.  阳历转阴历的类 FineReport里面会提供一个现成的农历日历工具类SolarToLunar,该类中通过today(intyear, int m

iconv_open函数申请一个字符集转换的描述符

iconv_open函数 iconv_open函数 iconv_open——申请一个字符集转换的描述符 #include <iconv.h> iconv_t iconv_open(const char* tocode,const char* fromcode) 描述: iconv_open()函数申请一个转换描述符,转换字符序列从编码fromcode到编码tocode 转换描述符包含转换状态,调用iconv_open创建以后,转换状态处于初始状态,调用iconv函数以后改变转换描述符的转换状态

自定义函数格式转换

<script type="text/javascript"> window.onload = function () { var NumArray = []; while (NumArray.length < 6) { var NumRand = parseInt(Math.random() * 15) + 10; var IsCun = 0; for (var i = 0; i < NumArray.length; i++) { if (NumArray[i

Teradata自定义函数UDF

Teradata支持C语言的自定义函数.具体部署方法如下: 1.如下UDF存储到文件中,文件名称为chs_instr.udf /* database syslib; replace FUNCTION chs_instr(srcStr VARCHAR(1024), childStr VARCHAR(64)) RETURNS INTEGER LANGUAGE C NO SQL PARAMETER STYLE TD_GENERAL EXTERNAL NAME chs_instr; sel chs_in

C++ struct结构体定义构造函数和析构函数,构造函数参数从VS2017平台转换到Qt5平台下构建出错,采用字符集转换函数将string类型转换为wstring,构建仍然出错!

调试win硬件驱动,需要利用VS编译的win驱动构建自己的Qt5GUI程序: 其中部分win驱动源码如下 device_file::device_file(const std::string& path, DWORD accessFlags) { h = CreateFile(path.c_str(), accessFlags, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);} 调用winAPI CreateFile函数在win中字符编