近日有同事在外面部署系統時,安裝資料庫時可能選擇了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的擴充套件,加入對繁...