PROCEDURE TEST(
      user_id    IN       VARCHAR2,
      form_id    IN       VARCHAR2,
      perm_cur_user OUT   u_cursor
   )
   IS
      userid                VARCHAR2(100);
      formid                VARCHAR2(100);
BEGIN
      formid := form_id;
      userid := user_id;
  --control_temptable := ;
      OPEN perm_cur_user FOR SELECT * FROM TABLE(F_USER_FORM_OBJECT_PERMISSIONS(userid,formid));--'1','F0001'));
 EXCEPTION
      WHEN NO_DATA_FOUND
      THEN
         DBMS_OUTPUT.put_line (   'ERR:USER_PERMISSIONS:   '
                               || TO_CHAR (SQLCODE)
                               || '    '
                               || SQLERRM
                              );
      WHEN OTHERS
      THEN
        DBMS_OUTPUT.put_line (   'ERR:USER_PERMISSIONS:   '
                               || TO_CHAR (SQLCODE)
                              || ' '
                              || SQLERRM||userid||formid
                             );
END;F_USER_FORM_OBJECT_PERMISSIONS 函数是个返回嵌套表函数,测试通过没有错误,在存储过程TEST中如果我给函数F_USER_FORM_OBJECT_PERMISSIONS 的参数是常量的时候 存储过程可以返回个光标,但给的是变量存储过程编译通过,但运行不通过,错误是ERR:USER_PERMISSIONS:   -22905 ORA-22905: cannot access rows from a non-nested table item  谢谢