oracle 定义游标的时候可以使用变量作为表的名字吗?

我的目的就是希望可以在存储过程的参数中传递表的名称,然后在存储过程内定义游标的时候,根据表的名字来查询,这个可以做到吗?如下:

create or replace procedure case_to_province(table_name in varchar2, id_name in varchar2) as
        cursor cur is
       select * from table_name;

begin

        for rec in cur loop

……

我希望可以实现类似这种语句片段的效果,当然,上面的写法是错误的。还请大家给与帮助,非常感谢。

1个回答

可以用 Ref cursor:

[code="sql"]
type refcur_type is ref cursor;
cur refcur_type;

begin
open cur for ' select * from ' || table_name;
然后再fetch cur 就可以用了。。。
[/code]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐