Ⅰ 如何查看mysql資料庫的編碼字元集
基本上現在的字元集 MySQL 都支持,查看 MySQL 支持的字元集列表, 有兩種方法:
1. SQL 語句
2. 查看元數據字典表
查詢結果:
1)第一列代表字元集名字;
2)第二列表示字元集排序規則;
3)第三列表示字元集描述;
4)第四列表示字元集編碼的最大位元組數。
Ⅱ 如何查看Oracle資料庫字元集,詳細操作,xx
資料庫伺服器字元集select * from nls_database_parameters,其來源於props$,是表示資料庫的字元集。
客戶端字元集環境select * from nls_instance_parameters,其來源於v$parameter,
表示客戶端的字元集的設置,可能是參數文件,環境變數或者是注冊表
會話字元集環境select * from nls_session_parameters,其來源於v$nls_parameters,表示會話自己的設置,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設置,將與nls_instance_parameters一致。
客戶端的字元集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。如果多個設置存在的時候,alter session>環境變數>注冊表>參數文件
字元集要求一致,但是語言設置卻可以不同,語言設置建議用英文。如字元集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
涉及三方面的字元集,
1. oracel server端的字元集;
2. oracle client端的字元集;
3. dmp文件的字元集。
在做數據導入的時候,需要這三個字元集都一致才能正確導入。
2.1 查詢oracle server端的字元集
有很多種方法可以查出oracle server端的字元集,比較直觀的查詢方法是以下這種:
SQL> select userenv('language') from al;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
SQL>select userenv(『language』) from al;
AMERICAN _ AMERICA. ZHS16GBK
2.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 al;
ZHS16GBK
如果dmp文件很大,比如有2G以上(這也是最常見的情況),用文本編輯器打開很慢或者完全打不開,可以用以下命令(在unix主機上):
cat exp.dmp |od -x|head -1|awk '{print $2 $3}'|cut -c 3-6
然後用上述SQL也可以得到它對應的字元集。
2.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端相同的字元集。
補充:
(1).資料庫伺服器字元集
select * from nls_database_parameters
來源於props$,是表示資料庫的字元集。
(2).客戶端字元集環境
select * from nls_instance_parameters
其來源於v$parameter,表示客戶端的字元集的設置,可能是參數文件,環境變數或者是注冊表
(3).會話字元集環境
select * from nls_session_parameters
來源於v$nls_parameters,表示會話自己的設置,可能是會話的環境變數或者是alter session完成,如果會話沒有特殊的設置,將與nls_instance_parameters一致。
(4).客戶端的字元集要求與伺服器一致,才能正確顯示資料庫的非Ascii字元。
如果多個設置存在的時候,NLS作用優先順序別:Sql function > alter session > 環境變數或注冊表> 參數文件> 資料庫默認參數
字元集要求一致,但是語言設置卻可以不同,語言設置建議用英文。如字元集是zhs16gbk,則nls_lang可以是American_America.zhs16gbk。
Ⅲ 如何利用MySQL命令查看字元集和校對規則
MySQL資料庫伺服器支持多種字元集,如GBK、UTF-8、UTF-16等。MySQL的字元集和校對規則也有不同的設置方式,還有表字元集和校對規則。下面利用常用的命令的實例,查看使用方法,具體操作如下:
MySQL資料庫查看所有可用的字元集,利用命令: show character set; 如下圖所示:
還可以利用information_schema.character_sets,查看顯示所有的字元集和字元集默認的校對規則,利用命令: descinformation_schema.character_sets; 如下圖所示:
查看GBK字元集的校對規則,利用如下命令: show collation like 'gbk%'; 如下圖所示:
如果想要查看當前伺服器的字元集,可以利用命令: show variables like 'character_set_server'; 如下圖所示:
查到當前伺服器的字元集,現在查看其校對規則,可以利用命令: show variables like 'collation_server'; 如下圖所示:
查看當前MySQL資料庫的字元集,可以利用命令: show variables like 'character_set_database'; 如下圖所示:
當前資料庫字元集查到了,其對應的校對規則如何查看,利用命令: show variables like 'collation_database'; 如下圖所示:
Ⅳ 如何查看和修改Oracle資料庫伺服器端的字元集
A、oracle server 端字元集查詢
select userenv('language') from al
其中NLS_CHARACTERSET 為server端字元集
NLS_LANGUAGE 為 server端字元顯示形式
B、查詢oracle client端的字元集
$echo $NLS_LANG
如果發現你select 出來的數據是亂碼,請把client端的字元集配置成與linux操作系統相同的字元集。如果還是有亂碼,則有可能是資料庫中的數據存在問題,或者是oracle服務端的配置存在問題。
C、server端字元集修改
將資料庫啟動到RESTRICTED模式下做字元集更改:
SQL> conn /as sysdba Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
如果發現你select 出來的數據是亂碼,請把client端的字元集配置成與linux操作系統相同的字元集。如果還是有亂碼,則有可能是資料庫中的數據存在問題,或者是oracle服務端的配置存在問題。
.1.oracle server端字元集查詢 復制代碼代碼如下: select userenv('language') from al; server字元集修改: 將資料庫啟動到RESTRICTED模式下做字元集更改:&??
oracle10g伺服器端是安裝在AIX 6.0系統上,客戶端是安裝在windows server 2008 系統上,客戶端與伺服器已成功連接,但是資料庫表裡的中文字無法顯示,顯示為「?」,用SQLPLUS查得伺服器端的字元集為AL16uTF16,如何修改該字元集使之支持中文呢?另外oracle10G客戶端的字元集需不需要設置,如何查看和設置呢?