RT,我想写一个这样的参数型游标,用于获取指定表的数据,但是这样写会报错,说指定表不存在,请问怎么办呀 cursor backup_table(bn in varchar2) is select * from bn;

解决方案 »

  1.   

    用动态cursoropen cursor for '字符串'
      

  2.   

     cursor backup_table(bn in varchar2) is select * from bn;
    问题所在:你的表名称是个字符串,用open for可以解决这个问题
      

  3.   


    declare 
     tabname varchar2(30):='&tabname';
     c sys_refcursor;
    begin
     open c for 'select * from '||tabname;
    end;
    /
      

  4.   


    谢谢大家,那么这个引用的游标必须声明为sys_refcursor的吗?
      

  5.   

    是的。sys_refcursor 用于声明游标变量,open ... for 用于打开游标变量。