⑴ 如何修改Oracle資料庫字元集
Database character set (AL32UTF8) and Client characterset (ZHS16GBK) are different.
Character set conversion may cause unexpected results.
Note: you can set the client character set through the NLS_LANG environmentvariable or the NLS_LANG registry key in
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1.
SIMPLIFIED CHINESE_CHINA.ZHS16GBK 包含 AMERICAN_AMERICA.AL32UTF8.
這可是個麻煩事,不是改客戶端字元集的問題。要改資料庫的字元集。我是自己筆記本上面的oracle11g,所以膽子還是很大的:
sql> conn /as sysdba
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 ZHS16GBK;
ORA-12712: new character set must be a superset of old character set
提示我們的字元集:新字元集必須為舊字元集的超集,這時我們可以跳過超集的檢查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
--我們看到這個過程和之前ALTER DATABASE CHARACTER SET操作的內部過程是完全相同的,也就是說INTERNAL_USE提供的幫助就是使Oracle資料庫繞過了子集與超集的校驗.
SQL> select * from v$nls_parameters;
SQL> shutdown immediate;
SQL> startup
SQL> select * from v$nls_parameters;
以後安裝oracle11g的時候記得選擇自定義安裝,把這個字元集的事情事先弄好。
⑵ 求助oracle 11g 字元集修改問題
資料庫字元集在創建後原則上不能更改。如果需要修改字元集,通常需要導出資料庫數據,重建資料庫,再導入資料庫數據的方式來轉換。
樓主只是改前兩部分,是不是想提示的時候是中文?如果這樣,你只需要更改客戶端的字元集即可,不用改伺服器端,如不知道客戶端怎麼更改,請追問。
NLS_LANG = language_territory.charset
Language: 指定伺服器消息的語言, 影響提示信息是中文還是英文
Territory: 指定伺服器的日期和數字格式,
如:AMERICAN _ AMERICA. ZHS16GBK
從NLS_LANG的組成我們可以看出,真正影響資料庫字元集的其實是第三部分。
所以兩個資料庫之間的字元集只要第三部分一樣就可以相互導入導出數據,前面影響的只是提示信息是中文還是英文。
⑶ ORACLE11G安裝的時候 怎麼指定字元集的問題
ORACLE11G安裝的時候指定字元集的操作過程如下:
SQL> shutdown immediate
SQL> startup
SQL> alter session set sql_trace=true;
SQL> alter system enable restricted session;
SQL> show parameter job_queue_processes;
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> update props$ set VALUE$='UTF8' where NAME='NLS_NCHAR_CHARACTERSET';
改變字元集後,原來已有的數據不會改變,只是之後新增的數據會是新的字元集。
⑷ 怎麼修改oracle11G字元集
有2種方法可行。
1. 如果需要修改字元集,通常需要導出資料庫數據,重建資料庫,再導入資料庫數據的方式來轉換。
2. 通過ALTER DATABASE CHARACTER SET語句修改字元集,但創建資料庫後修改字元集是有限制的,只有新的字元集是當前字元集的超集時才能修改資料庫字元集,例如UTF8是US7ASCII的超集,修改資料庫字元集可使用ALTER DATABASE CHARACTER SET UTF8。
⑸ oracle11g如何創建US7ASCII字元集的資料庫
應該有一個「只顯示建議的
字元集
」
的
復選框
,去掉這個復選框,就可以找到
US7ASCII字元集
了
如果找不到,那麼在安裝的時候不建資料庫,等安裝完了用
Database
Configuration
Assistant
來建資料庫,是有這個選項的。
⑹ oracle11g如何選擇字元集
默認是ZHS16GBK 也可以選擇Unicode(AL32UTF8) 一般沒什麼特殊要求的話默認就行了
⑺ 批改oracle10g和oracle11g資料庫字元集怎麼解決
有2種方法可行。
1. 如果需要修改字元集,通常需要導出資料庫數據,重建資料庫,再導入資料庫數據的方式來轉換。
2.
通過ALTER DATABASE CHARACTER
SET語句修改字元集,但創建資料庫後修改字元集是有限制的,只有新的字元集是當前字元集的超集時才能修改資料庫字元集,例如UTF8是US7ASCII
的超集,修改資料庫字元集可使用ALTER DATABASE CHARACTER SET UTF8。