您的位置: 旅游网 > 影视

nvarchar和varchar的转换问题

发布时间:2019-09-12 17:27:49

java编程,将表中的nvarchar记录导出存储到xml文件中,利用xdk的函数导出后,发现xml文件中存储的表中的nvarchar字段中的中文变成了二进制码,再将xml文件导入时报错。所以我想将nvarchar先转换成varchar类型,导出后,再将varchar导回到nvarchar类型导入,请教两种类型的转换函数时什么?

Specifying the USING CHAR_CS argument converts text into the database character set. The output datatype is VARCHAR2.

Specifying the USING NCHAR_CS argument converts text into the national character set. The output datatype is NVARCHAR2.

Example 1

CREATE TABLE t1 (char_col  CHAR(20),

nchar_col nchar(20));

INSERT INTO t1

VALUES ('Hi', N'Bye');

SELECT * FROM t1;

CHAR_COL     NCHAR_COL

--------     ---------

Hi           Bye

Example 2

UPDATE t1 SET

nchar_col = TRANSLATE(char_col USING NCHAR_CS);

UPDATE t1 SET

char_col = TRANSLATE(nchar_col USING CHAR_CS);

SELECT * FROM t1;

CHAR_COL     NCHAR_COL

--------     ---------

Hi           Hi

Example 3

UPDATE t1 SET

nchar_col = TRANSLATE('deo' USING NCHAR_CS);

UPDATE t1 SET

char_col = TRANSLATE(N'deo' USING CHAR_CS);

SELECT * FROM t1;

CHAR_COL     NCHAR_COL

--------     ---------

deo          deo

表不多的话可以这样

//创建一个新表,并把数据转换为varchar2

create table newtbname as select col1,translate(col2 using char_cs),col3 from tbname;

rename tbname to tbname_temp;//将原先的表重新命名

rename newtbname to tbname;//把新创建的表改名为原先的表名

这样就转换过来了

作完后,把tbname drop掉,rename tbname_temp to tbname就行了

这样应该可以解决问题 查看本文来源

宝宝消化不良怎么办
小孩风寒咳嗽吃什么药效果最好
5岁宝宝咳嗽厉害小妙招
儿童发烧
猜你会喜欢的
猜你会喜欢的