其他分享
首页 > 其他分享> > 【Teradata】TD Unicode编码格式下varchar定义测试

【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     中    中国

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

 

 

 

4.插入数据验证

 

标签:Teradata,SET,varchar,NO,NC,CHARACTER,Unicode,TEST,VARCHAR
来源: https://www.cnblogs.com/badboy200800/p/10785699.html