1. 程式人生 > >oracle資料出現憤怒加密演算法

oracle資料出現憤怒加密演算法

作為一名程式設計師,經常會遇見一些詭異的事情,今天我就遇見一個,oracle資料通過資料泵impdp匯入後出現亂碼,經過如下操作:

1.oracle server 端 字符集查詢:

select userenv('language') from dual
發現查出來的結果和我原匯出資料的結果不一致;
原匯出資料庫的結果為:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
新資料的結果是:SIMPLIFIED CHINESE_CHINA.WE8ISO8859P1
2.server端字符集修改
更改字符集步驟方法(WE8ISO8859P1 --> ZHS16GBK)
登入oracle所在linux伺服器,通過oracle(資料庫安裝使用者)
登入後,以管理員身份登入sqlplus

SQL> conn /as sysdba

SQL> shutdown immediate;

SQL> startup mount

SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;

SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;

SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;

SQL> alter database open;

SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;

Database altered.

SQL> shutdown immediate;

SQL> startup

再次檢視登入系統,結果發現:
oracle資料出現憤怒加密演算法
出現了這種憤怒的方式,於是我也是醉了,後來我決定重新再次匯入資料:
3.資料泵匯入命令:
(1).oracle建立directory:
create directory 名稱 as ‘路徑’;
drop directory 名稱 ;
例如:create directory bbsp_tmp as ‘/home/app’;
(2).linux下執行:
directory=名稱(已經建立的),將dmp檔案存放在這個路徑下;
impdp 匯入資料庫使用者/匯入資料庫密碼 directory=名稱(已經建立的)dumpfile=*.dmp(dmp檔案) remap_schema=原匯出檔案使用者名稱:匯入資料使用者名稱;
例:impdp bbspzhun/bbspzhun directory=bbsp_tmp dumpfile=bbsp20181121.dmp remap_schema=bbsp:bbspzhun;
結果又出現了這個問題:expdp匯出資料時碰到ora-39006錯誤,錯誤提示如下所示,
ORA-39006: internal error
ORA-39213: Metadata processing is not available
4.解決ORA-39006: internal error問題:
SQL> execute dbms_metadata_util.load_stylesheets;
PL/SQL procedure successfully completed.****