在select语句中使用cursor

时间:2012-10-25 08:57:44

标签: plsql

希望你能帮助我,我试图在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;

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

2 个答案:

答案 0 :(得分:1)

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

 FOR cur in c_cur_trip_menu
 LOOP
     dbms_output.put_line(cur.col1||' 'cur.col2);
 END LOOP;

答案 1 :(得分:0)

您无法从光标中选择(但您可以从任何选择语句创建光标(使用光标(您的查询)))但是表格或流水线功能可以帮助您完成任务。 http://www.oracle-base.com/articles/misc/pipelined-table-functions.php可以帮助你。然而,我从未理解尝试移动函数方法来检索基于sql的数据库中的数据 - 视图解决它完美。 CBO估计函数很弱,因此您可以创建一个位置,使您的查询提前更慢。什么 - 不知道......