亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > Oracle > 正文

詳細介紹oracle數據庫字符集

2024-08-29 13:49:30
字體:
來源:轉載
供稿:網友
  一、什么是Oracle字符集   Oracle字符集是一個字節數據的解釋的符號集合,有大小之分,有相互的包容關系。ORACLE 支持國家語言的體系結構答應你使用本地化語言來存儲,處理,檢索數據。它使數據庫工具,錯誤消息,排序次序,日期,時間,貨幣,數字,和日歷自動適應本地化語言和平臺。   影響oracle數據庫字符集最重要的參數是NLS_LANG參數。它的格式如下:
NLS_LANG = language_territory.charset   它有三個組成部分(語言、地域和字符集),每個成分控制了NLS子集的特性。其中:   Language 指定服務器消息的語言,territory 指定服務器的日期和數字格式,charset 指定字符集。如:AMERICAN _ AMERICA. ZHS16GBK   從NLS_LANG的組成我們可以看出,真正影響數據庫字符集的其實是第三部分。所以兩個數據庫之間的字符集只要第三部分一樣就可以相互導入導出數據,前面影響的只是提示信息是中文還是英文。   二、如何查詢Oracle的字符集   很多人都碰到過因為字符集不同而使數據導入失敗的情況。這涉及三方面的字符集,一是oracel server端的字符集,二是oracle client端的字符集;三是dmp文件的字符集。在做數據導入的時候,需要這三個字符集都一致才能正確導入。   1、查詢oracle server端的字符集   有很多種方法可以查出oracle server端的字符集,比較直觀的查詢方法是以下這種:SQL>select userenv(‘language’) from dual;   結果類似如下:AMERICAN _ AMERICA. ZHS16GBK   2、如何查詢dmp文件的字符集   用oracle的eXP工具導出的dmp文件也包含了字符集信息,dmp文件的第2和第3個字節記錄了dmp文件的字符集。假如dmp文件不大,比如只有幾M或幾十M,可以用UltraEdit打開(16進制方式),看第2第3個字節的內容,如0354,然后用以下SQL查出它對應的字符集: SQL> select nls_charset_name(to_number('0354','xxxx')) from dual;  ZHS16GBK   假如dmp文件很大,比如有2G以上(這也是最常見的情況),用文本編輯器打開很慢或者完全打不開,可以用以下命令(在unix主機上):cat exp.dmp od -xhead -1awk '{PRint $2 $3}'cut -c 3-6     然后用上述SQL也可以得到它對應的字符集。   3、查詢oracle client端的字符集   這個比較簡單。在windows平臺下,就是注冊表里面相應OracleHome的NLS_LANG。還可以在dos窗口里面自己設置,比如: set nls_lang=AMERICAN_AMERICA.ZHS16GBK   這樣就只影響這個窗口里面的環境變量。   在unix平臺下,就是環境變量NLS_LANG。   $echo $NLS_LANG   AMERICAN_AMERICA.ZHS16GBK   假如檢查的結果發現server端與client端字符集不一致,請統一修改為同server端相同的字符集。   三、修改oracle的字符集   上文說過,oracle的字符集有互相的包容關系。如us7ascii就是zhs16gbk的子集,從us7ascii到zhs16gbk不會有數據解釋上的問題,不會有數據丟失。在所有的字符集中utf8應該是最大,因為它基于unicode,雙字節保存字符(也因此在存儲空間上占用更多)。   一旦數據庫創建后,數據庫的字符集理論上講是不能改變的。因此,在設計和安裝之初考慮使用哪一種字符集十分重要。根據Oracle的官方說明,字符集的轉換是從子集到超集受支持,反之不行。假如兩種字符集之間根本沒有子集和超集的關系,那么字符集的轉換是不受oracle支持的。對數據庫server而言,錯誤的修改字符集將會導致很多不可測的后果,可能會嚴重影響數據庫的正常運行,所以在修改之前一定要確認兩種字符集是否存在子集和超集的關系。一般來說,除非萬不得已,我們不建議修改oracle數據庫server端的字符集。非凡說明,我們最常用的兩種字符集ZHS16GBK和ZHS16CGB231280之間不存在子集和超集關系,因此理論上講這兩種字符集之間的相互轉換不受支持。   1、修改server端字符集(不建議使用)   在oracle 8之前,可以用直接修改數據字典表props$來改變數據庫的字符集。但oracle8之后,至少有三張系統表記錄了數據庫字符集的信息,只改props$表并不完全,可能引起嚴重的后果。正確的修改方法如下:
  $sqlplus /nolog   SQL>conn / as sysdba;    若此時數據庫服務器已啟動,則先執行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 ZHS16GBK;   SQL>ALTER DATABASE national CHARACTER SET ZHS16GBK;   SQL>SHUTDOWN IMMEDIATE;   SQL>STARTUP    2、修改dmp文件字符集   上文說過,dmp文件的第2第3字節記錄了字符集信息,因此直接修改dmp文件的第2第3字節的內容就可以‘騙’過oracle的檢查。這樣做理論上也僅是從子集到超集可以修改,但很多情況下在沒有子集和超集關系的情況下也可以修改,我們常用的一些字符集,如US7ASCII,WE8ISO8859P1,ZHS16CGB231280,ZHS16GBK基本都可以改。因為改的只是dmp文件,所以影響不大。   具體的修改方法比較多,最簡單的就是直接用UltraEdit修改dmp文件的第2和第3個字節。比如想將dmp文件的字符集改為ZHS16GBK,可以用以下SQL查出該種字符集對應的16進制代碼:   SQL> select to_char(nls_charset_id('ZHS16GBK'), 'xxxx') from dual;   0354    然后將dmp文件的2、3字節修改為0354即可。   假如dmp文件很大,用ue無法打開,就需要用程序的方法了。網上有人用java存儲過程寫了轉換的程序(用java存儲過程的好處是通用性教好,缺點是比較麻煩)。我在windows下測試通過。但要求oracle數據庫一定要安裝JVM選項。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
成人久久一区二区| 91国在线精品国内播放| 中文字幕在线国产精品| 日韩高清中文字幕| 国产精品久久久久久久久久久久久久| 日韩久久免费视频| 国内精品久久久久| 中文字幕欧美日韩精品| 精品久久久久久久久久国产| 欧美专区日韩视频| 国产精品一区二区久久久| 91在线无精精品一区二区| 国产精品久久久久99| 亚洲国产精品久久91精品| 久久天天躁狠狠躁夜夜av| 国产精品一区二区久久精品| 麻豆一区二区在线观看| 国产精品爱久久久久久久| 97国产精品视频人人做人人爱| 亚洲综合在线小说| 国产精品av在线| 日韩av在线播放资源| 国产精品欧美久久久| 亚洲第一区中文99精品| 欧美激情亚洲综合一区| 中文字幕日韩电影| 日韩电影在线观看中文字幕| 久久精品国产69国产精品亚洲| 亚洲图片在线综合| 日韩免费在线视频| 91美女片黄在线观看游戏| 国产欧美一区二区三区久久| 国产美女扒开尿口久久久| 亚洲国产天堂久久国产91| 国产精品女视频| 国产亚洲一级高清| 欧美亚洲成人免费| 久久精品人人做人人爽| 国产一区二区三区在线观看视频| 97在线视频免费| 国产精品久久999| 亚洲第一页在线| 久久久久久亚洲精品不卡| 日本午夜在线亚洲.国产| 91精品久久久久久久久久久久久久| 日韩在线免费高清视频| 国内伊人久久久久久网站视频| 日韩在线播放av| 国产欧美精品在线播放| 亚洲人高潮女人毛茸茸| 国产精品视频一区二区高潮| 亚洲美女在线观看| 日本欧美黄网站| 国产日韩欧美另类| 国内精品在线一区| 国产精品久久久久久av| 久久久欧美一区二区| 不卡伊人av在线播放| 国产精品欧美日韩| 国内免费久久久久久久久久久| 欧美激情日韩图片| 亚洲国产精品久久久久秋霞蜜臀| 国产精品久久久久一区二区| 91香蕉嫩草神马影院在线观看| 国产精品久久久久久久电影| 国产一区红桃视频| 中文字幕日韩欧美| 91av视频在线| 亚洲精品v天堂中文字幕| 成人精品在线观看| 久久精品久久久久| 欧美电影院免费观看| 久久久久久一区二区三区| 色婷婷综合成人av| 亚洲的天堂在线中文字幕| 久热精品视频在线观看一区| 日产精品久久久一区二区福利| 国产日韩在线免费| 日韩av在线导航| 午夜精品免费视频| 26uuu久久噜噜噜噜| 亚洲一区www| 亚洲a一级视频| 国产精品福利在线观看| 国产午夜精品美女视频明星a级| 中文字幕欧美专区| 国产精品夫妻激情| 久久国产精品久久久久久| 亚洲精品国产精品乱码不99按摩| 国内外成人免费激情在线视频| 精品少妇一区二区30p| 热99精品里视频精品| 欧美在线一区二区三区四| 国产精品亚洲综合天堂夜夜| 亚洲人成自拍网站| 久久国产天堂福利天堂| 日韩精品视频在线观看免费| 国产亚洲欧美日韩精品| 国模私拍一区二区三区| 欧美激情国产精品| 日本久久亚洲电影| 成人福利视频网| 日韩在线视频二区| 亚洲欧美国产精品久久久久久久| 国产丝袜一区二区三区免费视频| 亚洲黄色www网站| 亚洲999一在线观看www| 亚洲资源在线看| 国产v综合v亚洲欧美久久| 国产69精品久久久久99| 亚洲直播在线一区| 狠狠色香婷婷久久亚洲精品| 亚洲丝袜一区在线| 国产黑人绿帽在线第一区| 亚洲精品国精品久久99热一| 精品国产依人香蕉在线精品| 精品福利一区二区| 日韩av三级在线观看| 亚洲欧美一区二区三区在线| 国产日韩精品视频| 亚洲韩国欧洲国产日产av| 久热99视频在线观看| 久久影院模特热| 成人做爰www免费看视频网站| 国产亚洲精品久久久久动| 亚洲成人精品视频| 亚洲一区二区三区视频播放| 国产精品久久久久久久久免费| 欧美理论电影在线播放| 国产精品久久久久久久久免费看| 91精品国产99| 日本成人黄色片| 国产精品高清在线| 精品视频在线观看日韩| 国产精品美女主播在线观看纯欲| 色综合久久久久久中文网| 91国语精品自产拍在线观看性色| 91在线|亚洲| 国产欧美日韩最新| 日韩在线观看高清| 88国产精品欧美一区二区三区| 亚洲理论片在线观看| 国产精品视频中文字幕91| 欧美激情国内偷拍| 在线亚洲午夜片av大片| 2020国产精品视频| 欧美wwwwww| 日韩精品视频在线免费观看| 国产99视频在线观看| 91久久精品一区| 国产精品jvid在线观看蜜臀| 国内外成人免费激情在线视频| 日韩免费精品视频| 久久久精品电影| 日韩av在线不卡| 久久精品电影一区二区| 在线成人激情黄色| 国产成人精品国内自产拍免费看| 国产精品丝袜一区二区三区| 伊人伊成久久人综合网站| 欧美激情影音先锋| 韩国国内大量揄拍精品视频| 欧美色另类天堂2015| 欧美性生交大片免网|