管理子程序


管理子程序

1、列出当前用户的子程序
  数据字典视图USER_OBJECTS用于显示当前用户所包含的所有对象。它不仅可以列出用户的表、视图、索引等,也可以列出用户的过程、函数和包。如下语句所示:
SELECT * FROM USER_OBJECTS WHERE OBJECT_TYPE IN ('PROCEDURE','FUNCTION');

2、列出子程序源代码
数据字典视图USER_SOURCE用于列出子程序的源代码。
SELECT TEXT FROM USER_SOURCE WHERE NAME='PKG_N9_RPT';

3、列出子程序编译错误
   确定错误出现在哪一行方法:
   第一:使用SHOW ERRORS命令;SQL> SHOW ERRORS PROCEDURE ADD_AREA;
   第二:使用数据字典视图USER_ERRORS。SQL> SELECT line||'/'||position AS "LINE/COL",text error FROM user_errors WHERE name='ADD_AREA';

4、列出对象依赖关系
   比如视图GC_OWNERSHIP引用了表B$GC_OWNERSHIP,那么该视图就是依赖对象,而该表称为引用对象
    查看依赖关系的方法一:
    SELECT * FROM USER_DEPENDENCIES WHERE REFERENCED_NAME='B$GC_OWNERSHIP';
    查看依赖关系的方法二:
    使用工具视图DEPTREE和IDEPTREE确定直接依赖和间接依赖关系
    首先运行E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN下的utldtree.sql脚本,来建立这两个视图和过程deptree_fill,然后调用过程deptree_fill填充这两个视图。
    SQL> @E:\oracle\product\10.2.0\db_1\RDBMS\ADMIN\utldtree.sql --利用utldree.sql建立视图和过程
    SQL>exec deptree_fill(‘table’,’scott’,’emp’);          --利用过程填充视图内容
    SQL>select * from deptree;                                   --从视图中获取数据、

5、重新编译子程序
   当其所引用的对象发生变化时会使这些依赖对象变为无效的,因此必须重新编译才能重新变成可使用的。
   可以直接在plsql的左边选择包等右键进行编译;
   或者采用语句进行编译:ALTER PROCEDURE ADD_AREA COMPILE;

原文地址:https://www.cnblogs.com/lanzi/p/1825803.html