熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

nvarchar和varchar的轉換問題

2013-11-13 12:45:55  來源: Oracle 

  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 VARCHAR
  
  Specifying the USING NCHAR_CS argument converts text into the national character set The output datatype is NVARCHAR
  
  Example 
  CREATE TABLE t (char_col  CHAR()
  nchar_col nchar());
  INSERT INTO t
  VALUES (Hi NBye);
  SELECT * FROM t;
  
  CHAR_COL     NCHAR_COL
       
  Hi           Bye
  
  Example 
  UPDATE t SET
  nchar_col = TRANSLATE(char_col USING NCHAR_CS);
  UPDATE t SET
  char_col = TRANSLATE(nchar_col USING CHAR_CS);
  SELECT * FROM t;
  
  CHAR_COL     NCHAR_COL
       
  Hi           Hi
  
  Example 
  UPDATE t SET
  nchar_col = TRANSLATE(deo USING NCHAR_CS);
  UPDATE t SET
  char_col = TRANSLATE(Ndeo USING CHAR_CS);
  SELECT * FROM t;
  
  CHAR_COL     NCHAR_COL
       
  deo          deo
  
  表不多的話可以這樣
  
  //創建一個新表並把數據轉換為varchar
  create table newtbname as select coltranslate(col using char_cs)col from tbname;
  rename tbname to tbname_temp;//將原先的表重新命名
  rename newtbname to tbname;//把新創建的表改名為原先的表名
  這樣就轉換過來了
  作完後把tbname drop掉rename tbname_temp to tbname就行了
  
  這樣應該可以解決問題
From:http://tw.wingwit.com/Article/program/Oracle/201311/16546.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.