procedure有一个参数,参数是一个表名,然后我在第一个动态游标sor_1来 select *  ,然后里面嵌套的一个游标sor_2是通过数据字典找到这个表的列名有哪些,fetch到一个变量aaa里.现在我想用sor_1.aaa 来调出该轮循环的那列的值,编译报错  PLS-00487: 对变量 'SOR_1' 的引用无效  求救求救!

解决方案 »

  1.   

    动态sql可以取 但是列的类型不好整阿。
    下面是动态sql例子,其他的自己改改,不过我觉得比较难实现
    Examples of Dynamic Bulk Binds
    You can bind define variables in a dynamic query using the BULK COLLECT INTO clause. As the following example shows, you can use that clause in a bulk FETCH or bulk EXECUTE IMMEDIATE statement:DECLARE
       TYPE EmpCurTyp IS REF CURSOR;
       TYPE NumList IS TABLE OF NUMBER;
       TYPE NameList IS TABLE OF VARCHAR2(15);
       emp_cv EmpCurTyp;
       empnos NumList;
       enames NameList;
       sals   NumList;
    BEGIN
       OPEN emp_cv FOR 'SELECT empno, ename FROM emp';
       FETCH emp_cv BULK COLLECT INTO empnos, enames;
       CLOSE emp_cv;   EXECUTE IMMEDIATE 'SELECT sal FROM emp'
          BULK COLLECT INTO sals;
    END;