知道原因了,原來是atb_name的類型錯誤,我定方成的varchar2,定議成表類型怎麼寫??

解决方案 »

  1.   

    需要用到动态sql,因为你传进来当作表名的参数oracle在静态编译时是把它当作一个表名的,当然不存在了啊。
    execute immediate 'select * from '||table_name
      

  2.   

    create procedure name_pro(p_table in varchar2,p_rc out pkg_test.myrctype)
    as
    str varchar2(50);
    begin
    str:='select * from '||p_table;
    open p_rc for str;
    end;
    /
      

  3.   

    是的,要用到动态的SQL,拼成!