1

希望你能帮助我,我试图在 sql 查询中使用游标。我有 99% 的把握可以做到这一点,请问有什么建议吗?这是我的代码

FUNCTION filter (c_cur_trip_menu IN  c_menu_tripulantes) 
        RETURN c_menu_tripulantes IS 
    BEGIN
             SELECT * 
            FROM c_cur_trip_menu  , opciones_migradas 
            WHERE  mnu.mnu_idemnu = id_opcion;      


            RETURN c_cur_trip_menu;
    END filter;

我想要的是将光标用作表格。提前致谢。

4

2 回答 2

1

您可以将数据从 复制cursortemporary table,但不能像表格那样使用游标。如果要在 oracle 中构建的函数,则不能使用select语法来显示数据:

 FOR cur in c_cur_trip_menu
 LOOP
     dbms_output.put_line(cur.col1||' 'cur.col2);
 END LOOP;
于 2012-10-25T10:53:33.847 回答
0

您不能从游标中选择(但您可以从任何选择语句创建游标(使用游标(您的查询))),但表或流水线函数可以帮助您完成任务。http://www.oracle-base.com/articles/misc/pipelined-table-functions.php可以帮助您。尽管如此,我从来没有理解尝试移动函数方法以在基于 sql 的数据库中检索数据 - 视图完美地解决了它。CBO 估计的功能很弱,因此您可以提前创建使查询工作更慢的地方。为了什么——不知道......

于 2012-10-25T18:30:41.060 回答