久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

如何通過ZHS16GBK和AL32UTF8字符編碼分析exp/imp

144次閱讀
沒有評論

共計 3269 個字符,預計需要花費 9 分鐘才能閱讀完成。

如何通過 ZHS16GBK 和 AL32UTF8 字符編碼分析 exp/imp,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

實驗環境:vmware server + rhel5.4(英文版操作系統)+oracle10g 

問題描述:同事在 Linux 下安裝的 Oracle,默認的字符集沒有修改,使用的是 WE8ISO8859P1,不能夠支持中文,

問題表現為,客戶端錄入的中文數據可以顯示,提交之后再查詢出來后中文會顯示為???。問題出在 oracle 服務端的字符集不支持中文導致。

可以通過:

select  userenv(language)  from  dual; 命令可以查看服務端的使用的字符集。

或者 select  *  from  V$NLS_PARAMETERS; 命令也可以

以及 select * from SYS.PROPS$;

確定了問題后就 Google 了一下,網上倒是有很多這方面的資料。可能是自己的環境和他們的不一致的原因,按照網上的那些步驟我的問題沒有解決。

問題根源找到了就好解決了,參考著網上的資料自己的解決步驟如下:

總的來說有兩個思路:

1、重新安裝

2、修改字符集

注:第一個方法沒有用,覺得重裝不是我喜歡的道道,解決問題是根本。所以我選擇的是第二種方式。

網上很多人說,oracle 服務端安裝好了之后字符集是不可以更改的,實踐證明是可以修改的,至少 oracle8 以上的版本都是可以修改的。

我的解決步驟:

1、ssh 登錄,切換到 oracle 用戶

切換用戶命令:su -oracle

之后用 sqlplus 登錄 oracle,命令:

:sqlplus /nolog

:connect /as sysdba

這樣就登錄了。

2、更改字符集

首先 sqlplus 登錄后,關閉 oracle 數據庫

1.shutdown immediate ; 
2.startup mount ; 
3.alter  system enable restricted session ; 
4.alter  system  set  JOB_QUEUE_PROCESSES=0; 
5.alter  system  set  AQ_TM_PROCESSES=0; 
6.alter  database  open  ; 
7. alter database character set INTERNAL_USE ZHS16GBK; 
8.shutdown immediate ; 
9.startup ; 

注:一開始我按照上面的步驟沒有解決,因為在第 7 步的時候有的資料提示使用 alter database character set ZHS16GBK; 我試過,這個命令不行,我使用的是 alter database character set INTERNAL_USE ZHS16GBK; 提示修改成功。同樣,如果在 startup mount 下命令提示 error 的話,可以嘗試在 startup restrict 下運行第七步的命令。

以下是我的調試命令記錄,大家可以參考一下,那些提示錯誤的命令都是執行失敗的,可以不必管。

SQL conn /as sysdba
Connected.
SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL startup mount
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size  1218992 bytes
Variable Size  104859216 bytes
Database Buffers  176160768 bytes
Redo Buffers  2973696 bytes
Database mounted.
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 ZHS16GBK;
alter database character set ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

— 我也嘗試了換用其它的字符集,也是不行,同樣報錯
SQL alter database character set AL32UTF8;
alter database character set AL32UTF8
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set

— 至此網上的步驟調試失敗,所以我繼續查資料,又進行了如下的調試

SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL startup restrict
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size  1218992 bytes
Variable Size  113247824 bytes
Database Buffers  167772160 bytes
Redo Buffers  2973696 bytes
Database mounted.
Database opened.

— 一開始我是用的是如下的命令,結果失敗
SQL alter database character set simplified chinese_china.zhs16gbk;
alter database character set simplified chinese_china.zhs16gbk
  *
ERROR at line 1:
ORA-00933: SQL command not properly ended

– 我嘗試了兩次,改成大寫也不行,
SQL alter database character set simplified CHINESE_CHINA.ZHS16GBK;
alter database character set simplified CHINESE_CHINA.ZHS16GBK
  *
ERROR at line 1:
ORA-00933: SQL command not properly ended

– 最后,我使用了這命令,提示執行成功,之后通過測試中文亂碼問題解決
SQL alter database character set INTERNAL_USE ZHS16GBK;

Database altered.
SQL shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL startup
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size  1218992 bytes
Variable Size  113247824 bytes
Database Buffers  167772160 bytes
Redo Buffers  2973696 bytes
Database mounted.
Database opened.
SQL

關于如何通過 ZHS16GBK 和 AL32UTF8 字符編碼分析 exp/imp 問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注丸趣 TV 行業資訊頻道了解更多相關知識。

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-07-19發表,共計3269字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 茌平县| 托克逊县| 商丘市| 岳普湖县| 石阡县| 六盘水市| 芦山县| 资源县| 南和县| 桂阳县| 乐业县| 日土县| 迁安市| 商河县| 桐乡市| 德阳市| 康保县| 芦山县| 庆阳市| 方山县| 西盟| 和林格尔县| 彭阳县| 大丰市| 根河市| 绿春县| 长宁区| 同江市| 潞西市| 奈曼旗| 老河口市| 黄浦区| 丹巴县| 眉山市| 郑州市| 沅陵县| 济阳县| 开原市| 广西| 潍坊市| 苗栗市|