如何在执行期间填充游标

时间:2009-11-24 19:06:28

标签: plsql cursor

我目前正在尝试在过程中填充游标。

像那样:

Function notImportantFunction
   variable nothing(20);
   Cursor notImportantCursor Is select...;
   Cursor THEcursor;
begin
    open notImportantCursor;
    open THEcursor;
    LOOP
        FETCH notImportantCursor variable;
    EXIT WHEN notImportantCursor%NOTFOUND;
        THEcursor is select ...; //trying to populate THEcursor
    end loop;
    close THEcursor;
    close notImportantCursor;
end;

我为我的变量使用了奇怪的名字,只是为了表明这里唯一重要的是THEcursor。

我正在尝试甚至可能吗?或者,我怎么能以另一种方式做同样的事情。

提前谢谢

2 个答案:

答案 0 :(得分:1)

我认为你要求的是“我能否根据我在声明游标时无需定义的查询创建游标” 如果这就是你想要的,那么请在这里查看有关动态sql的信息。

Dynamic SQL

在引用编译时不存在的数据库对象一节中有一个完美的例子。 您可以随时重新创建光标 如果你需要一些更灵活的东西,比如在每条记录中创建一个包含三个值的游标,并且你想以不同的方式填充这些值,你可以寻找流水线表函数

答案 1 :(得分:0)

我不太确定你要做什么 - 填充光标?游标基于查询,那么您打算如何填充?也许你想根据游标填充表格?您可以通过将游标结果累积到集合中然后使用批量插入来填充表来完成此操作。