萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> oracle教程 >> Oracle的imp命令導入備份數據

Oracle的imp命令導入備份數據

筆者在做項目過程中遇到以下問題,在客戶提供的數據庫備份文件需要導入到數據庫中,以便使用,數據庫為Oracle 9.1.1,安裝在Windows Server 2000 JP系統中,服務器端字符集為JAPANESE_JAPAN_UTF8,而客戶端使用的是中文Windows Server 2000系統,字符集為SIMPLIFIED CHINESE_CHINA.ZHS16GBK。

在插入數據過程中出現如下問題:

C:\oracle\ora90\BIN>imp scott/tiger@SDES full=y file=c:\expdat.dmp

Import: Release 9.0.1.1.1 - Production on 星期一 1月 22 19:05:43 2007

(c) Copyright 2001 Oracle Corporation. All rights reserved.

連接到: Oracle9i Release 9.0.1.1.1 - Production

JServer Release 9.0.1.1.1 - Production

IMP-00016: 不支持要求的字符集轉換(從類型830到852)

IMP-00000: 未成功終止導入

使用2進制文件編輯工具,如uedit32。打開導出的dmp文件,獲取2、3字節的內容,如00 01,先把它轉換為10進制數,為1,使用函數NLS_CHARSET_NAME即可獲得該字符集:

SQL> select nls_charset_name(1) from dual;

NLS_CHARSET_NAME(1)

-------------------

US7ASCII

可以知道該dmp文件的字符集為US7ASCII,如果需要把該dmp文件的字符集換成ZHS16GBK,則需要用NLS_CHARSET_ID獲取該字符集的編號: 筆者遇到的問題為830到852類型轉換錯誤,進入Oracle的sqlplus,進行以下查詢:

SQL> select nls_charset_name(830) from dual;

NLS_CHARSET_NA

--------------

JA16EUC

SQL> select nls_charset_name(852) from dual;

NLS_CHARSET_NAME

----------------

ZHS16GBK

SQL>

SQL> select nls_charset_id('zhs16gbk') from dual;

NLS_CHARSET_ID('ZHS16GBK')

--------------------------

852

  • 共2頁:
  • 上一頁
  • 1
  • 2
  • 下一頁
copyright © 萬盛學電腦網 all rights reserved