是否可以通过PL \ SQL中的行号来获取存储过程名称?

时间:2014-11-03 10:24:02

标签: oracle plsql

我只是在编写一个自动化流程的工具。在它之外,我只是想让它获取存储过程名称,如果我给出许多过程的包的行号。

是否可以这样做,或者是否有其他方法可以使用行号或“特定文本”获取程序名称?

2 个答案:

答案 0 :(得分:0)

查看all_procedures

也许你可以通过使用subprogram_id列来解决这个问题。

看来,此列标识了程序包标头中定义的过程。

答案 1 :(得分:0)

尝试从SYS视图中选择ALL_SOURCE查询所有者,包名称和行号或所有者包名称和文本。

以下两个例子假设您将用您自己的信息替换MYOWNER,MYPACKAGE,Myprocedure和MYLINENUMBER。

select * from ALL_SOURCE
   where OWNER = 'MYOWNER' and
         TYPE='PACKAGE' and
         NAME='MYPACKAGE' and
         TEXT like 'PROCEDURE Myprocedure%'

select * from ALL_SOURCE
   where OWNER = 'MYOWNER' and
         TYPE='PACKAGE' and
         NAME='MYPACKAGE' and
         LINE = MYLINENUMBER