Oracle筆記二 字符集

2021-10-09 01:16:29 字數 1889 閱讀 6986

客戶端字符集

檢視資料庫伺服器端字符集方式

修改資料庫字符集

在建立資料庫時,可以指定字符集(character set)和國家字符集(national character set)。

1、字符集

(1)用來儲存char, varchar2, clob, long等型別資料;

(2)用來標示諸如表名、列名以及pl/sql變數等;

(3)用來儲存sql和pl/sql程式單元等;

2、國家字符集

(1)用以儲存nchar, nvarchar2, nclob等型別資料;

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

simplified chinese_china.zhs16gbk :乙個漢字占用兩個位元組

simplified chinese_china.al32utf8: 乙個漢字占用三個位元組

可使用如下語句檢視:

select lengthb(『你』) from dual;

客戶端字符集定義了客戶端字元資料的編碼方式,任何發自或發往客戶端的字元資料均使用客戶端定義的字符集編碼,客戶端可以看作是能與資料庫直接連線的各種應用,例如sqlplus,exp/imp,pl/sql developer等。客戶端字符集是通過設定nls_lang引數來設定的。

1、備份資料庫:防止修改字符集導致資料錯亂,無法恢復

2、使用管理員使用者登入資料庫

sqlplus sys as sysdba

3、由於要改動資料庫基礎配置,因而需先關閉資料庫

shutdown immediate;

4、裝載資料庫,開啟控制檔案

startup mount;

5、更改配置並啟動資料庫

alter session set sql_trace=true;

alter system enable restricted session;

alter system set job_queue_processes=0;

alter system set aq_tm_processes=0;

alter database open;

6、更改字符集

1)gbk改為utf-8

alter database character set al32utf8;

2)utf-8改為gbk

sql> alter database character setzhs16gbk;

第1行出現錯誤:

ora-12712: new character set must be a superset of old characterset

提示我們的字符集:新字符集必須為舊字符集的超集,這時我們可以跳過超集的檢查做更改:

sql> alter database character set internal_use zhs16gbk;

(internal_use可使oracle資料庫繞過子集與超集的校驗.)

7、恢復引數

alter session set sql_trace=false;

8、重啟資料庫

shutdown immediate;

startup;

9、檢視伺服器端字符集

select parameter, value from v$nls_parameters where parameter like 『%characterset』;

MySQL(九) 字符集

編碼 字元 二進位制 解碼 二進位制 字元 為什麼會出現亂碼?因為編碼和解碼的規則不同。本質上都是同樣的一串二進位製流,按照不同的規則解讀的結果當然是不同的。模擬一下我們的時間戳轉時間的場景,時間戳就好比是二進位制,時區就好比是不同的字符集,同乙個時間戳用不同的時區轉換,得到的結果當然是不同的。所以...

MySQL學習20 字符集

字符集 描述ascii 最簡單的西文編碼方案,主要用於顯示現代英語和其他西歐語言 使用1個位元組表示,可表示128個字元。gb2312 國家標準簡體中文字符集,相容ascii 使用2個位元組表示,能表示7445個符號,包括6763個漢字,幾乎覆蓋所有高頻率漢字。gbkgb2312的擴充套件,加入對繁...

05(字元 字元編碼 字符集)

一 字元 各種文字和符號的總稱。二 字元編碼 即計算機對各種字元,在計算機中的一種二進位制儲存代號 三 字符集 即多個字元的集合,同一字元在不同字符集中的二進位制儲存代號是不同的。四 常用設定 1 修改字符集 set names 字符集 2 檢視系統字符集設定 show variables like...