【oracle 資料匯入匯出字元問題】

Yichen16發表於2022-08-17

         在資料庫匯入匯出過程中或載入外部表的資料時,有時會遇到匯入,載入外部資料到庫時會出現亂碼,引起這個種亂碼問題有可能是oracle字符集、客戶端字符集、作業系統字符集不一致所導致的。

一、字符集查詢方法

1、服務端字符集

select userenv('language') from dual;

select * from nls_database_parameters;

2、作業系統字符集

linux: echo $NLS_LANG

cat .bash_profile

export NLS_LANG="SIMPLIFIED CHINESE_CHINA".ZHS16GBK

windows:

C:\Users\zhouji>chcp

活動內碼表: 936  (對應簡體中文GBK)

設定在登錄檔中永久設定或臨時設定

set nls_lang=AMERICAN_AMERICA.ZHS16GBK 

3、客戶端字符集

select * from nls_instance_parameters

linux:export NLS_LANG=

備註:三者一致,資料匯入,匯出、載入外部表不會出現資料轉換及亂碼情況。

二、字元型別、字符集、國家字符集、字元編碼區別

1、字元型別

如:char  varchar varchar2  number clob等等;

2、字符集

(1)用來儲存CHAR, VARCHAR2, CLOB, LONG等型別資料
(2) 用來標示諸如表名、列名以及PL/SQL變數等
(3) 用來儲存SQL和PL/SQL程式單元等

3、國家字符集

(1) 用以儲存NCHAR, NVARCHAR2, NCLOB等型別資料

(2) 國家字符集實質上是為oracle選擇的附加字符集,主要作用是為了增強oracle的字元處理能力,因為NCHAR資料型別可以提供對亞洲使用定長多位元組編碼的支援,而資料庫字符集則不能。國家字符集在oracle9i中進行了重新定義,只能在unicode編碼中的AF16UTF16和UTF8中選擇,預設值是 AF16UTF16

4、字元編碼

三、聯想以上所有字元型別,字符集等構成了整個資料庫的基礎骨架,儲存資料、高效檢索、資料計算等功能構成了資料庫的日常運用。資料庫維護涉及到其資料庫正常,高效執行,此刻涉及最佳化等等。(此處描述比較簡略,後期會逐漸詳細描述)


總結:字元及編碼是資料庫的基礎,也是資料庫設計的要點,此處應該慎重。


Yicheng16
22.08.17

-- The End --

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69963467/viewspace-2910555/,如需轉載,請註明出處,否則將追究法律責任。

相關文章