如何判断Oracle包是否是本机编译的?

时间:2012-02-14 10:20:17

标签: oracle plsql

我在Oracle中安装了一些软件包,我想看看它们是否是本机编译的。有没有办法在数据字典中检查这个?

1 个答案:

答案 0 :(得分:8)

您可以使用词典视图检查包是否已经过本机编译:

Oracle 9i:

USER_STORED_SETTINGSDBA_STORED_SETTINGSALL_STORED_SETTINGS

例如:

SELECT param_value 
  FROM user_stored_settings 
 WHERE param_name = 'PLSQL_COMPILER_FLAGS'
   AND object_name = 'MY_PACKAGE';

对于为本机执行而编译的过程,PARAM_VALUE列的值为NATIVE,否则为INTERPRETED

Oracle 10g和11g:

USER_PLSQL_OBJECT_SETTINGSDBA_PLSQL_OBJECT_SETTINGSALL_PLSQL_OBJECT_SETTINGS 请参阅PLSQL_CODE_TYPE列。

有关详细信息,请参阅:http://www.dba-oracle.com/t_compiled_pl_sql.htmhttp://www.pastusiak.info/oracle/native_compilation

希望它有所帮助...