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就行了
这样应该可以解决问题