環境:
資料庫:oracle 10.2.0.4 --64位
作業系統:紅旗dc 5.0 --64位
以sys登陸,執行DBMS_METADATA.get_ddl得到某個表空間的中繼資料報錯
select DBMS_METADATA.get_ddl('TABLESPACE','PDA') 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 7428
ORA-06512: at "SYS.DBMS_METADATA_INT", line 7477
ORA-06512: at "SYS.DBMS_METADATA_INT", line 9495
ORA-06512: at "SYS.DBMS_METADATA", line 1920
ORA-06512: at "SYS.DBMS_METADATA", line 2793
ORA-06512: at "SYS.DBMS_METADATA", line 4333
ORA-06512: at line 1
馬上檢視10g的線上檔案:
Cause: The XSL stylesheets used by the Data Pump Metadata API were not loaded correctly into the Oracle dictionary table "sys.metastylesheet." Either the stylesheets were not loaded at all, or they were not converted to the database character set.
Action: Connect AS SYSDBA and execute dbms_metadata_util.load_stylesheets to reload the stylesheets.
解決方法:
以sysdba權限的使用者登陸執行以下語句:
SQL> exec dbms_metadata_util.load_stylesheets;
PL/SQL procedure successfully completed.
再次執行成功:
SQL> select DBMS_METADATA.get_ddl('TABLESPACE','PDA') from dual;
DBMS_METADATA.GET_DDL('TABLESPACE','PDA')
--------------------------------------------------------------------------------
CREATE TABLESPACE "PDA" DATAFILE
'/db_data/app/oracle/oradata/pda/PDA_01.dbf' SIZE 2147483648
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO
對于oracle 9i的解決方法:
以sys使用者執行以下腳本:
SQL>@?/rdbms/admin/catmet.sql