oracle utf8字符集轉gbk

2021-06-17 21:06:56 字數 1610 閱讀 8771

近日有同事在外面部署系統時,安裝資料庫時可能選擇了utf-8編碼格式,匯入insert語句時,乙個漢字被認為三個位元組,這是不行的。

結合上網搜到的資料,將oracle資料庫的編碼格式,從utf-8改為gbk後,一切正常了。

附:plsql執行記錄:

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

c:\users\administrator>sqlplus /nolog

sql*plus: release 11.2.0.1.0 production on 星期一 9月 3 11:39:04 2012

sql> conn / as sysdba

已連線。

sql>shutdown immediate

資料庫已經關閉。

已經解除安裝資料庫。

oracle 例程已經關閉。

sql>  startup mount;

oracle 例程已經啟動。

total system global area  778387456 bytes

fixed size                  1374808 bytes

variable size             377488808 bytes

database buffers          394264576 bytes

redo buffers                5259264 bytes

資料庫裝載完畢。

sql> alter system enable restricted session;

系統已更改。

sql> alter system set job_queue_processes=0;

系統已更改。

sql> alter system set aq_tm_processes=0;

系統已更改。

sql>alter database open;

資料庫已更改。

sql> alter database character set internal_use zhs16gbk;

資料庫已更改。

sql> shutdown immediate;

資料庫已經關閉。

已經解除安裝資料庫。

oracle 例程已經關閉。

sql>startup

oracle 例程已經啟動。

total system global area  778387456 bytes

fixed size                  1374808 bytes

variable size             377488808 bytes

database buffers          394264576 bytes

redo buffers                5259264 bytes

資料庫裝載完畢。

資料庫已經開啟。

sql>

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

檢視編碼格式:

select userenv('language') from dual;

select * from nls_database_parameters

UTF 8字符集的學習

今天因為擷取中文字串的原因,查了下utf 8字符集的資料,發現之前記憶的知識點有誤,之前一直以為utf 8中英文是1個位元組,其他語言的字元是3個位元組,查完資料後才發現utf 8字符集是一種變長字符集,每個字元占用位元組從1個到6個不等,恰好英文本元使用1個位元組,中文字元使用3個位元組,而且還知...

MySQL(九) 字符集

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

MySQL學習20 字符集

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