我在Oracle中安装了一些软件包,我想看看它们是否是本机编译的。有没有办法在数据字典中检查这个?
答案 0 :(得分:8)
您可以使用词典视图检查包是否已经过本机编译:
Oracle 9i:
USER_STORED_SETTINGS
,DBA_STORED_SETTINGS
和ALL_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_SETTINGS
,DBA_PLSQL_OBJECT_SETTINGS
和ALL_PLSQL_OBJECT_SETTINGS
请参阅PLSQL_CODE_TYPE
列。
有关详细信息,请参阅:http://www.dba-oracle.com/t_compiled_pl_sql.htm和http://www.pastusiak.info/oracle/native_compilation。
希望它有所帮助...