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