問題描述
SQL> select dbms_metadata.get_ddl('TABLESPACE','TEST') from dual;
ERROR:
ORA-39212: 安裝錯誤: 未正確載入 XSL 樣式表
ORA-06512: 在 "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: 在 "SYS.DBMS_METADATA_INT", line 7398
ORA-06512: 在 "SYS.DBMS_METADATA_INT", line 7447
ORA-06512: 在 "SYS.DBMS_METADATA_INT", line 9453
ORA-06512: 在 "SYS.DBMS_METADATA", line 1919
ORA-06512: 在 "SYS.DBMS_METADATA", line 2792
ORA-06512: 在 "SYS.DBMS_METADATA", line 4333
ORA-06512: 在 line 1
no rows selected
原 因
The XSL stylesheets used by the Data Pump Metadata API were not loaded correctly into the Oracle dictionary table "sys.metastylesheet."
It may be the cause that the stylesheets were not loaded at all in the database, or they were not converted to the database character set.
Suppose if you convert your database character set using ALTER DATABASE statement then likely you will face this problem.
解決方案
Note that never use ALTER DATABASE statement to migrate your characterset.
1)Connect as sysdba.
SQL> sqlplus /nolog
SQL> connect / as sysdba
Connected.
2)Execute dbms_metadata_util.load_stylesheets to reload the stylesheets.
SQL> exec dbms_metadata_util.load_stylesheets;
PL/SQL procedure successfully completed.
3)Exit and run the above query,
SQL>exit