修改Oracle數據庫的字符集


2019年6月,來到了新的環境工作,接觸了新的項目。

新的項目需要用Oracle數據庫,雖然以前沒用過,但是邊學邊用唄,在安裝Oracle數據庫的時候完全沒有注意到要選擇UTF-8的字符集,直接就默認安裝了。

剛開始用,沒毛病,該查查,該刪刪。

過了2個月過后,需要更換另一個項目的時候,導入數據庫還是老樣子沒啥毛病。

但是一切配置都搞定,項目啟動過后,登錄成功進入首頁,一頓亂碼!什么鬼!懵圈的一逼!之前的項目都沒有毛病呀,怎么回事?

檢查了一遍Eclipse的項目配置,沒毛病呀。

最后檢查了半天,發現是導入數據的時候,.dmp數據文件里的字符集與數據庫軟件的字符集不一樣。

哎,要讓我重新安裝數據庫軟件,小弟做不到呀啊!~ ~! 里面那么多其他項目的數據,也不想備份。看來直接修改數據庫軟件的字符集要合適一點咯。

百度了半天,跟着操作,最終強行修改了數據庫軟件的字符集。下面貼一下當時的操作指令:

1、打開cmd
2、輸入:SQLplus
3、輸入:Connected as sys@ORCL AS SYSDBA(密碼盲輸)
4、輸入:SHUTDOWN IMMEDIATE;
5、輸入:STARTUP MOUNT;
6、輸入:ALTER SYSTEM ENABLE RESTRICTED SESSION;
7、輸入:ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
8、輸入:ALTER SYSTEM SET AQ_TM_PROCESSES=0;
9、輸入:ALTER SYSTEM SET AQ_TM_PROCESSES=0;
10、輸入:ALTER DATABASE CHARACTER SET AL32UTF8;
若提示:提示新字符集必須是老字符集的超集。
則輸入:ALTER DATABASE CHARACTER SET INTERNAL_USE AL32UTF8;(強制轉換)
11、輸入:SHUTDOWN IMMEDIATE;
12、輸入:STARTUP;

中間第10步可能會遇到提示新字符集必須是老字符集超集的情況,只能通過強制轉換了。

我當時是遇到了這個情況,好在強制轉換成功,數據庫重新啟動后,程序又回到了正規。ˉ-ˉ

最后附上Oracle的導入數據的指令,以便日后忘記的時候有地方能快速查詢到,哈哈!

導入  Oracle數據庫賬戶用戶名/密碼  buffer       需要導入的數據庫文件路徑                 導出用戶        導入用戶
IMP  user1/pwd1          BUFFER=64000    FILE=C:\Users\getwind\Desktop\dmp190519.DMP  FROMUSER=user2  TOUSER=user1 

這只是命令導入數據方式4種中的其中一種,只是我最比較習慣的一種方式。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM