【點(diǎn)擊:】
阿木伯 著
|
|
在SQL*Plus中insert進(jìn)的都是中文的,為什么一存入服務(wù)器后,再select出的就是???了? |
|
- 錯誤現(xiàn)象:
1、有的時候,服務(wù)器數(shù)據(jù)先導(dǎo)出,重裝服務(wù)器,再導(dǎo)入數(shù)據(jù),結(jié)果,發(fā)生數(shù)據(jù)查詢成???。
2、有時,服務(wù)器設(shè)置就有問題,字符集設(shè)成單字節(jié)了。
- 錯誤原因:
一般,是因?yàn)樽址O(shè)置不對照成的。
- 解決方法:
1、檢查服務(wù)器上Oracle數(shù)據(jù)庫的字符集
SQL> conn sys/change_on_install
連接成功.
SQL> desc props$
列名 可空值否 類型
------------------------------- -------- ----
NAME NOT NULL VARCHAR2(30)
VALUE$ VARCHAR2(2000)
COMMENT$ VARCHAR2(2000)
SQL> col value$ format a40
SQL> select name,value$ from props$;
NAME VALUE$
------------------------------ -------------------------
DICT.BASE 2
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_DATE_FORMAT DD-MON-YY
NLS_DATE_LANGUAGE AMERICAN
NLS_CHARACTERSET ZHS16GBK
NLS_SORT BINARY
NLS_CALENDAR GREGORIAN
NLS_RDBMS_VERSION 7.3.4.0.0
GLOBAL_DB_NAME ORACLE.WORLD
EXPORT_VIEWS_VERSION 3
查詢到14記錄.
NLS_CHARACTERSET這個參數(shù)應(yīng)該是ZHS16GBK,如不是,改為它。
SQL*Plus中修改方法:
SQL> update props$ set value$='新字符集' where name='NLS_CHARACTERSET';
操作系統(tǒng)中修改方法:
connect internal
alter database ORCL character set ZHS16GBK;
alter database ORCL national character set ZHS16GBK;
2、檢查操作系統(tǒng)級Oracle漢字顯示的字符集
運(yùn)行regedit,定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
找到以下字符串
NLS_LANG
檢查是否以下內(nèi)容,如不是,改之
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
|
【最后更新:】 |
|