Oracle字元集理論篇1

來源:互聯網
上載者:User

一。ORACLE字元編碼方案

1.單一位元組字元集:

  在單一位元組字元集中,每個字元只佔一個位元組。單位元組7 位編碼方案最多可以定義128 (2^7) 個字元;單位元組8 位編碼方案最多可以定義256 (2^8) 個字元。

  單位元組方案樣本:

7 位字元集:美國7 位ASCII 碼(US7ASCII)8 位字元集: 西歐ISO 8859-1 碼(WE8ISO8859P1) 西歐8 位EBCDIC 字碼頁500 碼(WE8EBCDIC500) 西歐8 位DEC 碼(WE8DEC)

2.寬度固定的多位元組字元集

  除了每個字元採用位元組數固定的格式外,寬度固定的多位元組字元集同多位元組字元集提供的支援類似。這提供了每個字元具有統一位元組長度標記法的好處。Oracle 僅支援一個寬度固定的多位元組字元集,且該字元集只位於國家字元集AL16UTF16 中。

  寬度固定的多位元組字元集樣本:AL16UTF16、16 位Unicode(寬度固定的雙位元組Unicode)

3.寬度可變的多位元組字元集

  在寬度可變的多位元組字元集中,每個字元以一個或多個位元組表示。多位元組字元集通常用於支援亞洲語言。有些多位元組編碼方案使用最有效位值來表明,一個位元組是表示單個位元組還是作為代表一個字元的一系列位元組中的一部分。然而,其它字元編碼方案可以區分單位元組和多位元組字元。在碰到移入代碼之前,由裝置發出的移出控制碼表明後面的位元組都是雙位元組字元。

  寬度可變的多位元組方案樣本:日文擴充UNIX 代碼(JEUC);中文GB2312-80 (CGB2312-80);AL32UTF8 (UTF-8)

4.Unicode 字元集

  Unicode 是一種全球字元編碼標準,可以表示電腦中使用的所有字元,包括技術符號和出版用的字元。Unicode 標準3.0 版包含49,149 個字元,容量超過一百多萬個字元。Unicode 全套字元可以用不同的編碼格式表示。UTF-16(通用字元集轉換格式)是一種寬度固定的雙位元組格式;而UTF-8 是一種寬度可變的多位元組格式。

  Oracle 提供AL32UTF8、UTF8 和UTFE 作為資料庫字元集,同時提供AL16UTF16 和UTF8 作為國家字元集。基於UTF-8 的字元集的優點是它們包括使用相同單位元組編碼的ASCII。UTF8 是ASCII 的超集,因此,從基於ASCII 的字元集升級到Unicode 時,資料庫字元集的移植會變得更加簡單。

二。資料庫字元集和國家字元集

 

資料庫字元集 國家字元集
在建立時定義 在建立時定義
除非重新建立,否則無法更改

除非重新建立,否則無法更改

用來儲存CHAR, VARCHAR2, CLOB, LONG等類型資料

儲存類型為NCHAR、NVARCHAR2、NCLOB的資料列
用來標示諸如表名、列名以及PL/SQL變數等

國家字元集實質上是為oracle選擇的附加字元集,主要作用是為了增強oracle的字元處理能力,因為NCHAR資料類型可以提供對亞洲使用定長多位元組編碼
的支援,而資料庫字元集則不能

可以儲存寬度可變的字元集 可以採用AL16UTF16 或UTF8 格式儲存Unicode

 

 

 

 

 

 

 

 

 

 

三.字元集的相關參數NLS_

3.1NLS相關字典視圖 

  1. NLS_DATABASE_PARAMETERS: 顯示資料庫當前NLS參數取值,包括資料庫字元集取值
  2. NLS_SESSION_PARAMETERS: 顯示由NLS_LANG 設定的參數,或經過alter session 改變後的參數值(不包括由NLS_LANG 設定的用戶端字元集)
  3. NLS_INSTANCE_PARAMETE:  顯示由參數檔案init<SID>.ora 定義的參數
  4. V$NLS_PARAMETERS:       顯示資料庫當前NLS參數取值

3.2修改NLS參數:

  1. 修改執行個體啟動時使用的初始化參數檔案
  2. 修改環境變數NLS_LANG。
  3. 使用ALTER SESSION語句,在oracle會話中修改
  4. 使用某些SQL函數

  NLS作用優先順序別:Sql function > alter session > 環境變數或註冊表 > 參數檔案 > 資料庫預設參數  

3.3 NLS_LANG格式 : NLS_LANG = <language>_<territory>.<client character set>

  Language: 顯示oracle訊息,校正,日期命名

  Territory:指定預設日期、數字、貨幣等格式

  Client character set:指定用戶端將使用的字元集

      註:視圖NLS_DATABASE_PARAMETERS

修改NLS參數樣本:

 1 --以 ALTER SESSION 為例:   2 --查看當前會話參數 3 SQL> select * from nls_session_parameters; 4  5 PARAMETER                      VALUE 6 ------------------------------ -------------------- 7 NLS_LANGUAGE                   AMERICAN 8 NLS_TERRITORY                  AMERICA 9 NLS_CURRENCY                   $10 NLS_ISO_CURRENCY               AMERICA11 NLS_NUMERIC_CHARACTERS         .,12 NLS_CALENDAR                   GREGORIAN13 NLS_DATE_FORMAT                DD-MON-RR14 NLS_DATE_LANGUAGE              AMERICAN15 NLS_SORT                       BINARY16 NLS_TIME_FORMAT                HH.MI.SSXFF AM17 NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXF18 19 PARAMETER                      VALUE20 ------------------------------ --------------------21                                F AM22 23 NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR24 NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXF25                                F AM TZR26 27 NLS_DUAL_CURRENCY              $28 NLS_COMP                       BINARY29 NLS_LENGTH_SEMANTICS           BYTE30 NLS_NCHAR_CONV_EXCP            FALSE31 32 17 rows selected

 

1 --查看時間格式2 SQL> select last_name,hire_date from hr.employees;3 4 LAST_NAME                 HIRE_DATE5 ------------------------- ---------6 King                      17-JUN-877 Kochhar                   21-SEP-898 De Haan                   13-JAN-93
 1 --改變NLS_LANGUAGE 參數 2 SQL> alter session set NLS_LANGUAGE=Italian; 3  4 Session altered. 5  6 --產看改變參數後的時間格式 7 SQL> select last_name,hire_date from hr.employees; 8  9 LAST_NAME                 HIRE_DATE10 ------------------------- ---------11 King                      17-GIU-8712 Kochhar                   21-SET-8913 De Haan     

--其時間格式發生變化

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.