如何将此select语句转换为存储过程?

时间:2014-11-29 04:33:55

标签: sql oracle stored-procedures oracle11g

我有这个select语句,显示 pl / sql脚本的文本(内容):

select text
from DBA_source
where type like '%PROCEDURE%' and name like '%JOB_HISTORY%'
order by line;

我希望将其转换为存储过程,以便“' name' select语句的条件应该作为输入,不应该预先定义为显示像%job_history%。

如何做到这一点?

1 个答案:

答案 0 :(得分:1)

这是一个函数,而不是存储过程:

create type proc_tab is table of DBA_source.text%type;
/

create function select_procedure(p_name in film.title%type) return proc_tab
is
    l_proc_tab proc_tab := proc_tab();
    n integer := 0;
begin
    select text
    bulk collect into l_proc_tab
    from DBA_source
    where type like '%PROCEDURE%' and name like '%' || p_name || '%'
    order by line;
    return l_proc_tab;
end;
/

我还没有测试过这段代码,但至少应该是一个好的开始。