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種中的其中一種,只是我最比較習慣的一種方式。