oracle 字符集

1.字符集參數

 

NLS_LANG=<language>_<territory>.<Clients Characterset>

language--oracle使用的語言

territory---貨幣和數字格式,星期、地區和日誌計算習慣。

clients characterset 控制客戶端應用程序使用的字符集,不同可能造成亂碼

 

2.查看字符集

 

NLS_INSTANCE_PARAMETERS

數據庫實例字符集,在新建數據庫實例時指定,網上多誤爲客戶端字符集

官方解釋:NLS_INSTANCE_PARAMETERS lists NLS parameters of the instance.

 

NLS_DATABASE_PARAMETERS

數據庫字符集,NLS_LANGUAGENLS_TERRITORY在數據庫安裝時指定,NLS_CHARACTERSET在數據庫實例建立時指定

官方解釋:NLS_DATABASE_PARAMETERS lists permanent NLS parameters of the database.

 

V$NLS_PARAMETERS

客戶端字符集,受環境變量、參數文件、註冊表影響。

另一種方法是 select userenv('language') from dual;

官方解釋:V$NLS_PARAMETERS contains current values of NLS parameters.

 

NLS_SESSION_PARAMETERS

當前會話字符集,默認與客戶端字符集相同。可通過alter session 更改,只在當前會話生效。

官方解釋:NLS_SESSION_PARAMETERS lists NLS parameters of the user session.

 

3.修改字符集

客戶端字符集

windows

修改 cmd->regedit->HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ORACLE\KEY_OraDb10g_home1 NLS_LANG(全局)

dosset NLS_LANG=zh_CN.GB18030(當前session)

 

unxi 

修改/etc/sysconfig/i18n (全局)

e.g

LANG="en_US.UTF-8"

 

修改登錄用戶的.bash_profile (當前用戶)

e.g 加入 export LANG=zh_CN.GB18030

 

命令行下export LANG=zh_CN.GB18030(當前session

 

 

數據庫字符集

1)重建數據庫

2)只能在新字符集是舊字符集的嚴格超集情況下使用,若不是,將會報ora-12712錯誤。

步驟:

 

SQL>SHUTDOWN IMMEDIATE;

SQL>STARTUP MOUNT;

SQL>ALTER SYSTEM ENABLE RESTRICTED SESSION;

在數據庫受限制的過程中,只有對數據庫擁有RESTRICTED  SESSION權限的用戶才能夠連接到數據庫。這種狀態有利於對數據庫進行備份,恢復,導入,導出等操作。

 

SQL>ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

job_queue_processes參數,當設定該值爲0的時候則任意方式創建的job都不會運行。

SQL>ALTER SYSTEM SET AQ_TM_PROCESSES=0;

AQ_TM_PROCESSES 控制隊列信息與控制信息的實時監控,默認爲1

SQL>ALTER DATABASE OPEN;

SQL>ALTER DATABASE CHARACTER SET ZHS16GBK;

 

發佈了26 篇原創文章 · 獲贊 1 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章