台灣最大程式設計社群網站
線上人數
465
 
會員總數:245782
討論主題:189420
歡迎您免費加入會員
討論區列表 >> Oracle >> 如何將 CHARACTERSET 改為 big5
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
如何將 CHARACTERSET 改為 big5
價值 : 50 QP  點閱數:10036 回應數:5
樓主

chjiang
初學者
78 84
1328 93
發送站內信

各位前輩們好~

我的DB是 10gR2,我執行以下指令
select * from nls_database_parameters

NLS_NCHAR_CHARACTERSET => al16utf16
NLS_CHARACTERSET => zht16mswin950

我要如何修改成 big5 (ZHT16BIG5) 語系呢?

我在 oracle 這個user的 bash_profile 有設定
export NLS_LANG="TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5"

可能是資料庫建置,語系已設定,想請問前輩們,該如何調整?

打擾了!!


搜尋相關Tags的文章: [ CHARACTERSET ] , [ big5 ] ,
本篇文章發表於2011-08-03 12:06
1樓
最有價值解答

花旗蔘
檢舉此回應
幾點意見給您
1、在謹慎測試及評估前,最好不要任意更改資料庫的 CHARACTERSET ,
做之前 請一定要備份 最好再DATAPUMP一份出來 以備不時之需。

若是10g的版本 在做之前可以用字元集掃描程式:csscan 去找出資料庫在做轉換characterset 時可能會造成error的地方,然後修正它,直到csscan 沒報錯為止
先執行CSMINST.sql命令檔,讓資料庫準備好執行字元集掃描程式:cssscan,再執行csscan

---詳細的更動characterset 語法,我之前測試STEP是如下
shutdown immediate;
STARTUP MOUNT;
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;
ALTER DATABASE character set INTERNAL_USE ZHT16MSWIN950;--※
/*
執行 alter database character set ... =>更改資料庫字元集
OR
執行 alter database national character set ... =>更改national字元集
*/
ALTER SESSION SET SQL_TRACE=FALSE;
shutdown immediate;
startup;

PS:不過這僅是我 測試練習 之用,要對PROD的環境做更動 還是請多加評估及測試!!不然資料遺失就慘了!

2、你要用繁中的CHARACTERSET 建議用zht16mswin950 會比ZHT16BIG5 好
因為zht16mswin950 可以顯示一些由MS系統中才有的自建字元,所以zht16mswin950 的範圍會比ZHT16BIG5 大!
而新CHARACTERSET 必需是原CHARACTERSET 的超集(Superset),就是字元範圍要比原來的大,這樣才不會有字元 LOST的情況!

3、NLS_LANG 是client端的參數
export NLS_LANG="TRADITIONAL CHINESE_TAIWAN.ZHT16BIG5"

老實說我猜想你會不會是字元顯示上有問題? 才來發問?
很多時候 調整一下client端 連線時參數 就可解決問題
export NLS_LANG="TRADITIONAL CHINESE_TAIWAN.ZHT16MSWIN950"
本篇文章回覆於2011-08-03 14:44
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

花旗蔘
檢舉此回應
可以請問樓主 您最後的solution 是?

本篇文章回覆於2011-08-03 15:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

chjiang
檢舉此回應
To 花旗蔘:

你的回文,真的讓我非常感動!!~~真的!!~

除了給予解決的方法,還提供了相當重要的"經驗談"

真的非常的感謝您!!~~再次感謝!!

ps:我進行的是 測試環境的調整,在 PROD 環境在init就有設定好了!!(為了只是想和PROD環境相同)

再次感謝!!

本篇文章回覆於2011-08-03 15:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

chjiang
檢舉此回應
To 花旗蔘:
其實,我是個 programmer 對DB不算熟~
加上之前用的都是 mssql / mysql
對 Oracle ...... Orz ~ 真的很不懂!!
一開始在安裝 Oracle 也是 看書/爬文,至於管理.......哈哈~~(苦笑)

還好,我負責的部份只要將我會使用到的測試環境就可以了,就算掛掉,資料就再重倒囉!!

不知可否再請教一下 版主~
就我接觸 Oracle ,感覺整個架構上,與 mssql / mysql 差異非~~~~~~常大!!
可否有推薦的 網站 or 書藉,讓我再進修一下,關於 oracle 的使用 & 簡易管理!!

ps:有空再回就行了,非常感謝!!

最後,在看到你回文的同時,我也爬到和你一樣的 解決方式,在測試環境,我就直接 下指令了!!~哈!!~
本篇文章回覆於2011-08-03 15:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
回應

花旗蔘
檢舉此回應
網站:oracle online doc
EX:
http://www.oracle.com/pls/db112/homepage

oracle 官方網站上的資源就超多了!!

書:
oracle press 出的ocp專業認證指南1/2 (學貫翻的)
oracle press 出的書 都不錯!!

本篇文章回覆於2011-08-03 15:56
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.