日期:2014-05-16  浏览次数:20336 次

ORA-39212: 安装错误: 未正确加载 XSL 样式表


ORA-39212: 安装错误: 未正确加载 XSL 样式表:

问题描述
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