Mongoose House

          Technical Edition

          統計

          留言簿(4)

          積分與排名

          閱讀排行榜

          修改Oracle字符集(character set)

          本方法適用于Oracle9i, 10g以及XE. 在10.2.0.1.0下測試無錯. 需要注意的是, 使用此方法會破壞數據庫中的原有雙字節字符. 一種辦法是先將數據庫導出, 修改完字符集后再導入; 另一種辦法就是不管他, 就那樣使用. 一般如果是一個測試環境, 像方法二那樣就可以了, 但是可能某些表無法讀取, 需要注意.
          ?
          sql> shutdown immediate
          sql> startup mount
          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> AL32UTF8;
          sql> shutdown immediate
          sql> startup
          ?
          這里的INTERNAL_USE可選,譬如用于不能從父集轉到子集的場合,但是這樣做會產生亂碼,或者表中的數據不能讀取。
          ?
          如果數據庫中存在CLOB字段,那么就不允許對字符集進行轉換,此時可以查看alert<sid>.log文件,把含有CLOB的表trancate.
          ?
          sql> trancate table [table_name];
          ?
          轉換后的數據庫字符集可以通過以下命令察看.
          ?
          sql> select name, value$ from props$ where name like '%NLS%';
          ?
          導入導出是我們常用的一個數據遷移及轉化工具,因其導出文件具有平臺無關性,所以在跨平臺遷移中,最為常用。

          在導出操作時,非常重要的是客戶端的字符集設置,也就是客戶端的NLS_LANG設置。
          ?
          NLS_LANG參數由以下部分組成:
          ?
          NLS_LANG=<Language>_<Territory>.<Clients Characterset>
          ?
          NLS_LANG各部分含義如下:
          ??? Language
          ??????? -Oracle消息使用的語言?
          ??????? -日期中月份和日顯示
          ??? Territory?
          ??????? -貨幣和數字格式?
          ??????? -地區和計算星期及日期的習慣
          ??? Clients Characterset?
          ??????? -控制客戶端應用程序使用的字符集
          ?
          例如
          ?
          E:\>set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
          E:\>sqlplus "/ as sysdba"
          ?
          或者
          ?
          E:\>set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
          E:\>sqlplus "/ as sysdba"
          ?
          Windows客戶端設置,可以在注冊表中更改NLS_LANG,具體鍵值位于:
          ?
          HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\
          ?
          xx指存在多個ORACLE_HOME時系統編號。

          posted on 2006-09-25 15:02 Mongoose 閱讀(12623) 評論(2)  編輯  收藏

          評論

          # re: 修改Oracle字符集(character set) 2006-09-25 15:59 壞男孩

          oracle技術追求者!  回復  更多評論   

          # re: 修改Oracle字符集(character set)[未登錄] 2008-10-14 18:37 菜鳥

          有用,幫助很大  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 天津市| 聂拉木县| 满洲里市| 闽清县| 砚山县| 达尔| 连南| 阳西县| 北安市| 三河市| 怀宁县| 乌鲁木齐市| 旬阳县| 霍山县| 荔波县| 江山市| 南开区| 定兴县| 崇阳县| 凯里市| 乐亭县| 安徽省| 宁乡县| 荆州市| 洛宁县| 壤塘县| 新郑市| 德兴市| 思茅市| 雷波县| 城市| 甘谷县| 衡阳县| 宜宾市| 隆林| 县级市| 湟源县| 大关县| 兴义市| 徐闻县| 焦作市|