如何在oracle中的存储过程中手动将行添加到游标中

时间:2013-03-01 04:26:09

标签: oracle11g

我在存储过程中有一个游标。我想从查询中选择一些数据并将该数据插入到游标中,然后再从另一个查询中选择一些数据并将该数据附加到同一个游标中。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

游标是SQL语句的只读句柄。游标没有数据。您无法将数据附加到游标。你可以用光标做的唯一事情就是获取下一行。

您可以将用于打开游标的SQL语句一起更改为UNION两个不同的SQL语句,即

OPEN rc FOR 
  SELECT <<column list>>
    FROM table1
  UNION ALL
  SELECT <<column list>>
    FROM table2;

RETURN rc;

答案 1 :(得分:0)

我不知道过程返回值是如何使用简单的ref_cursor

看到这个
create or replace function test_ref() return sys_refcursor is
     temp sys_refcursor;
   begin
     open temp for 'select * from hr.employees ;
     return v_rc;
   end;
   /