nvarchar和varchar的转换问题

王朝other·作者佚名  2008-05-19
宽屏版  字体: |||超大  

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就行了

这样应该可以解决问题

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