Oracle 10G 10.2.0.5.0 RAC HP Unix 平台
SQL> select dbms_metadata.get_ddl('USER','DSG') from dual;
ERROR:
ORA-39212: installation error: XSL stylesheets not loaded correctly
ORA-06512: at "SYS.DBMS_SYS_ERROR", line 79
ORA-06512: at "SYS.DBMS_METADATA_INT", line 7171
ORA-06512: at "SYS.DBMS_METADATA_INT", line 7220
ORA-06512: at "SYS.DBMS_METADATA_INT", line 9317
ORA-06512: at "SYS.DBMS_METADATA", line 2258
ORA-06512: at "SYS.DBMS_METADATA", line 3136
ORA-06512: at "SYS.DBMS_METADATA", line 4787
ORA-06512: at line 1
典型的ORA-39212错误,经过查实导致ORA-39212原因是XSL样式表没有正确装在在数据库里,
重新执行一下dbms_metadata_util.load_stylesheets包就可以解决
注:
什么是XSL 简单科普下
XSL 之于XML,就像CSS之于HTML,它是指可扩展样式表语言 (EXtensible Stylesheet Language)。
这是一种用于以可读格式呈现 XML 数据的语言,XSL是一种标记语言,表示如何将XML文档的内容转换成另一种形式的文档。
通过为XML写XSL来使得XML显示成不同的格式.
1- 首先确保DBA_REGISTRY 的所有组件是有效的
SQL> connect / as sysdba
Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.5.0
SQL>select COMP_NAME ,status from DBA_REGISTRY;
COMP_NAME STATUS
---------------------------------------- ----------
.Oracle Enterprise Manager VALID
.Oracle XML Database VALID
.Oracle Workspace Manager VALID
.Oracle Database Catalog Views VALID
.Oracle Database Packages and Types VALID
.Oracle Real Application Clusters VALID
2- 用sysdba身份重新加载XSL样式表到数据库中:
SQL> exec dbms_metadata_util.load_stylesheets;
SQL>Analyze table METASTYLESHEET validate structure cascade;
3.重新执行成功了
SQL> select dbms_metadata.get_ddl('USER','DSG') from dual;
DBMS_METADATA.GET_DDL('USER','SPATIAL_CSW_ADMIN_USR')
--------------------------------------------------------------------------------
CREATE USER "DSG" IDENTIFIED BY VALUES 'S:6C43BA55201835A1F
0A958D244F7811B91F188B844605FA89D4A9CE41522;1B290858DD14107E'
DEFAULT TABLESPACE "DSG"
TEMPORARY TABLESPACE "TEMP"
PASSWORD EXPIRE
ACCOUNT LOCK