nvarchar和varchar的转换问题

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

Java编程,将表中的nvarchar记录导出存储到XML文件中,利用xdk的函数导出后,发现xml文件中存储的表中的nvarchar字段中的中文变成了二进制码,再将xml文件导入时报错。

所以我想将nvarchar先转换成varchar类型,导出后,再将varchar导回到nvarchar类型导入,请教两种类型的转换函数时什么?

SpecifyingtheUSINGCHAR_CSargumentconvertstextintothedatabasecharacterset.TheoutputdatatypeisVARCHAR2.

SpecifyingtheUSINGNCHAR_CSargumentconvertstextintothenationalcharacterset.TheoutputdatatypeisNVARCHAR2.

Example1

CREATETABLEt1(char_colCHAR(20),

nchar_colnchar(20));

INSERTINTOt1

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

SELECT*FROMt1;

CHAR_COLNCHAR_COL

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

HiBye

Example2

UPDATEt1SET

nchar_col=TRANSLATE(char_colUSINGNCHAR_CS);

UPDATEt1SET

char_col=TRANSLATE(nchar_colUSINGCHAR_CS);

SELECT*FROMt1;

CHAR_COLNCHAR_COL

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

HiHi

Example3

UPDATEt1SET

nchar_col=TRANSLATE('deo'USINGNCHAR_CS);

UPDATEt1SET

char_col=TRANSLATE(N'deo'USINGCHAR_CS);

SELECT*FROMt1;

CHAR_COLNCHAR_COL

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

deodeo

表不多的话可以这样

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

createtablenewtbnameasselectcol1,translate(col2usingchar_cs),col3fromtbname;

renametbnametotbname_temp;//将原先的表重新命名

renamenewtbnametotbname;//把新创建的表改名为原先的表名

这样就转换过来了

作完后,把tbnamedrop掉,renametbname_temptotbname就行了

这样应该可以解决问题

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航