重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊、服務(wù)器等服務(wù)
如何更改Oracle字符集以及把ZHS16GBK換成UTF8,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
徐匯ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
SQL> select name,value$ from props$ where name like '%NLS%';
NAME VALUE$
------------------------------ ------------------------------
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET ZHS16GBK
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NAME VALUE$
------------------------------ ------------------------------
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_RDBMS_VERSION 10.2.0.1.0
20 rows selected.
NLS_CHARACTERSET是數(shù)據(jù)庫字符集,NLS_NCHAR_CHARACTERSET是國家字符集
ORACLE中有兩大類字符型數(shù)據(jù),VARCHAR2是按照數(shù)據(jù)庫字符集來存儲數(shù)據(jù)。
而NVARCHAR2是按照國家字符集存儲數(shù)據(jù)的。同樣,CHAR和NCHAR也一樣,一是數(shù)據(jù)庫字符符,一是國家字符集。
轉(zhuǎn)換字符集,數(shù)據(jù)庫應(yīng)該在RESTRICTED模式下
首先要確定修改后的字符集是不是修改前的超集,如果不是可能出現(xiàn)相同的代碼點(diǎn)對應(yīng)不同的字符,出現(xiàn)亂碼的問題。
出現(xiàn)這個錯誤是 oracle 只支持從子集到超集的轉(zhuǎn)變
那有什么方法可進(jìn)行強(qiáng)制轉(zhuǎn)換呢?
該指令會跳過子集與超集的檢驗(yàn),當(dāng)然強(qiáng)制轉(zhuǎn)換可能會造成數(shù)據(jù)的損壞,要謹(jǐn)慎使用!!
下面借助eygle的帖子執(zhí)行。
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 1845493760 bytes
Fixed Size 2021568 bytes
Variable Size 452986688 bytes
Database Buffers 1375731712 bytes
Redo Buffers 14753792 bytes
Database mounted.
SQL> alter session set sql_trace=true;
Session altered.
SQL> alter system enable restricted session;
System altered.
SQL> alter system set job_queue_processes=0;
System altered.
SQL> alter system set aq_tm_processes=0;
System altered.
SQL> alter database open;
Database altered.
SQL> alter database character set INTERNAL_USE UTF8;
Database altered.
SQL>update props$ set VALUE$='UTF8' where NAME='NLS_NCHAR_CHARACTERSET'
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。