通过oracle过程检索结果集

时间:2016-07-12 11:25:12

标签: oracle plsql

我的pl-s技能非常有限,我的情况非常复杂。

在mssql中,我有一个过程,它根据提供的参数返回不同源表中具有不同列数的结果集。

在oracle中,我很难创建一个同样的过程。

我需要在里面生成查询,执行它并返回结果。

我经常搜索并尝试了很多东西。现在,我现在最好的方法是执行查询到游标,我无法做到。现在我所能做的就是生成查询并执行它 - 并且没有可见的结果。

任何帮助?

由于

编辑:更具体:如何将我动态生成的查询执行到游标中或如何使用本地临时表重新执行?

1 个答案:

答案 0 :(得分:1)

这样的东西?

create or replace procedure dynamic_cursor_demo
    ( p_some_expression in varchar2
    , p_results out sys_refcursor )
as
begin
    open p_results for
        'select ' || p_some_expression || ' as demo from dual';
end dynamic_cursor_demo;

(如果你有Oracle 12c,你也可以使用implicit statement results。文档中的示例。)