Chinaunix首页 | 论坛 | 博客
  • 博客访问: 762850
  • 博文数量: 803
  • 博客积分: 6000
  • 博客等级: 准将
  • 技术积分: 5015
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-28 10:29
文章分类

全部博文(803)

文章存档

2011年(1)

2008年(802)

我的朋友

分类:

2008-10-29 11:37:55


  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就行了
  
  这样应该可以解决问题
【责编:admin】

--------------------next---------------------

阅读(1278) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~