【Teradata】TD Unicode编码格式下varchar定义测试
如下测试表,每个字段字符编码格式均为Unicode。
1.varchar(1)可以存储1个汉字,也只能存储1个ASCII字符。
--创建表nc_test,每个字段编码格式均设定为Unicode【使用SQLA工具,session字符集设定为UTF8或UTF16】
CREATE MULTISET TABLENC_TEST ,
NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO,
MAP = TD_MAP1
(
EWID VARCHAR(1) CHARACTER SET UNICODE CASESPECIFIC,
NAME VARCHAR(1) CHARACTER SET UNICODE CASESPECIFIC,
DWDESC VARCHAR(2) CHARACTER SET UNICODE CASESPECIFIC
) NO PRIMARY INDEX ;
--插入数据【使用SQLA工具,session字符集设定为UTF8或UTF16】
insert into NC_TEST values('A','中','中国');
insert into NC_TEST values('A','中国','中国');
insert into NC_TEST values('A','中国人','中国');
insert into NC_TEST values('AA','中国人','中国');
--查询结果【使用SQLA工具,session字符集设定为UTF8或UTF16】
select * from NC_TEST; EWID NAME DWDESC
--------------------------------------------------
A 中 中国
A 中 中国
A 中 中国
A 中 中国
特别说明:上述SQLA工具,如果session使用字符集为ASCII,则定义为VARCHAR(60) CHARACTER SET UNICODE的字段,最终只能存入30个汉字(工具设定为UTF8或UTF16时可存入60个汉字)。
建表的时候使用ASCII会导致表名和字段名中文Title乱码,实际插入数据时改为使用UTF8或UTF16数据仍然正常。
CREATE MULTISET TABLE NC_TEST ,NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO,
MAP = TD_MAP1
(
SQLA_CHARACTER varchar(20) CHARACTER SET UNICODE CASESPECIFIC,
EWID VARCHAR(60) CHARACTER SET UNICODE CASESPECIFIC )
NO PRIMARY INDEX ; --SQLA连接session字符集选择ASCII,显示结果为:
--如果为非保证金一户通模式,也区分两种模式,对于银行承兑汇票业
insert into nc_test values
(
'ASCII','如果为非保证金一户通模式,也区分两种模式,对于银行承兑汇票业务,在核心系统也保存了每一张银票对应过的保证金担保金额,根据核心的数据,将对应保证金担保金额作为可缓释余额敞口金额进行缓释扣减。'
); --SQLA连接session字符集选择UTF8或者UTF16,显示结果为:
--如果为非保证金一户通模式,也区分两种模式,对于银行承兑汇票业务,在核心系统也保存了每一张银票对应过的保证金担保金额,根据
insert into nc_test values
(
'UTF-16','如果为非保证金一户通模式,也区分两种模式,对于银行承兑汇票业务,在核心系统也保存了每一张银票对应过的保证金担保金额,根据核心的数据,将对应保证金担保金额作为可缓释余额敞口金额进行缓释扣减。'
);
2.show table,字段长度与定义一致
show TABLE NC_TEST CREATE MULTISET TABLE NC_TEST ,
NO FALLBACK ,
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO,
MAP = TD_MAP1
(
EWID VARCHAR(1) CHARACTER SET UNICODE CASESPECIFIC,
NAME VARCHAR(1) CHARACTER SET UNICODE CASESPECIFIC,
DWDESC VARCHAR(2) CHARACTER SET UNICODE CASESPECIFIC
) NO PRIMARY INDEX ;
3. dbc.columnsv字典表中字段长度为定义的2倍
select tablename,columnname,columnlength from dbc.columnsv
where trim(tablename) ='NC_TEST' tablename columnname columnlength
--------------------------------------------------
NC_TEST NAME 2
NC_TEST EWID 2
NC_TEST DWDESC 4
【Teradata】TD Unicode编码格式下varchar定义测试的更多相关文章
- MySQL的varchar定义长度到底是字节还是字符
相信这个问题也会困扰不少人,尤其是使用过其它数据库(如Oracle)的人,之前我也没有太在意这个问题,再加上一些书籍和网上的文章讲的不够细致,又没测试过,导致我一直理解错误.下面通过实例来解释,在开始 ...
- 微服务下的契约测试(CDC)解读
1. 前言 有近两周没有在公众号中发表文章了,看过我之前公众号的读者都知道,公众号中近期在连载<RobotFramework接口自动化系列课程>,原本计划每周更新一篇,最近由于博主在带一个 ...
- UNICODE环境下读写txt文件操作
内容转载自http://blog.sina.com.cn/s/blog_5d2bad130100t0x9.html UNICODE环境下读写txt文件操作 (2011-07-26 17:40:05) ...
- 【原创】xenomai 在X86平台下中断响应时间测试
1.中断响应时间 实时操作系统的意义就在于能够在确定的时间内处理各种突发的事件,而中断这些事件.系统抢占调度的触发点,因而衡量嵌入式实时操作系统的最主要.最具有代表性的性能指标参数无疑是中断响应时间. ...
- Unicode字符集下CString与char *转换 (解决中文乱码等)(转)
UniCode 下 CString 转 char* 的方法的文章有很多,但是大部分都是在互相转载,看了那么多资料,仍然没有解决乱码的问题,后来从一个论坛的一条回复里面找到了正确的方法,特此拿出来与大家 ...
- Unicode字符集下CString与char *相互转换
经常遇到CString转换char*时只返回第一个字符.原因是因为在Unicode字符集下CString会以Unicode的形式来保存数据,强制类型转换只会返回第一个字符.所以直接转换在基于MBCS的 ...
- 基于.net的微服务架构下的开发测试环境运维实践
眼下,做互联网应用,最火的架构是微服务,最热的研发管理就是DevOps, 没有之一.微服务.DevOps已经被大量应用,它们已经像传说中的那样,可以无所不能.特来电云平台,通过近两年多的实践,发现完全 ...
- Java环境下shiro的测试-认证与授权
Java环境下shiro的测试 1.导入依赖的核心jar包 <dependency> <groupId>org.apache.shiro</groupId> < ...
- LINUX系统下MySQL 压力测试工具super smack
摘要:1.源文件下载地址:http://vegan.net/tony/supersmack/2.安装:注意在编译时,可以先把对应的libmysqlclient.so.*拷贝到/usr/lib3.测试: ...
随机推荐
- 项目开发中如何规范自己的CSS
1.CSS规范 - 分类方法 CSS文件的分类和引用顺序 通常,一个项目我们只引用一个CSS,但是对于较大的项目,我们需要把CSS文件进行分类. 我们按照CSS的性质和用途,将CSS文件分成“公共型样 ...
- android与js的交互之jsbridge使用
众所周知,app的一些功能可能会使用到H5开发,这就难免会遇到java与js 的相互调用,android 利用WebViewJavascriptBridge 实现js和java的交互,这里介绍下JsB ...
- 今天读一读七天学会NodeJS
七天学会NODEJS NodeJS基础 小结 本章介绍了有关NodeJS的基本概念和使用方法,总结起来有以下知识点: NodeJS是一个JS脚本解析器,任何操作系统下安装NodeJS本质上做的事情都是 ...
- Java基础之抽象类
/* 1.抽象类的概述: 动物不应该定义为具体的东西,而且动物中的吃,睡等也不应该是具体的. 我们把一个不是具体的功能称为抽象的功能,而一个类中如果有抽象的功能,该类必须是抽象类. 抽象类的特点: A ...
- win7 telnet命令无法开启的解决方案(不是内部命令或外部命令)
如果你想在win 7上直接使用 telnet命令,却不能开启那怎么办呢?记得在Wingdows XP上telnet都是已经安装好的,直接就可用,但是Win7是没有这个功能的,都需要后来自己安装的,下面 ...
- logrotate 进行nginx日志分割
http://www.williamsang.com/archives/1254.html 日志分割常用方法: 自己写脚本分割 使用linux自带的logrotate 前者灵活,可以应对各种需求,自定 ...
- https://blog.csdn.net/u011489043/article/details/68488459
转自https://blog.csdn.net/u011489043/article/details/68488459 String 字符串常量 StringBuffer 字符串变量(线程安全) ...
- 在docker上运行.net core程序
一.安装docker及镜像 1.在centos上安装docker,命令如下: # yum install docker 2.让docker随机启动: # service docker start# c ...
- BZOJ_1367_[Baltic2004]sequence_结论题+可并堆
BZOJ_1367_[Baltic2004]sequence_结论题+可并堆 Description Input Output 一个整数R Sample Input 7 9 4 8 20 14 15 ...
- 如何改变XCode的默认设置
改变bundle ID 进入 /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Appl ...