我只是在编写一个自动化流程的工具。在它之外,我只是想让它获取存储过程名称,如果我给出许多过程的包的行号。
是否可以这样做,或者是否有其他方法可以使用行号或“特定文本”获取程序名称?
答案 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