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 谢谢
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 谢谢
解决方案 »
- oracle指定的几行做统计。 难点!!有要挑战的进!!
- 求助,Oracle监听的问题
- mysql和oracle数据类型有哪些不同?
- 存储过程中发生CASE_NOT_FOUND 异常,日志中会有记录吗?在哪个日志文件中看?
- jsp与oracle中日期型数据转换问题
- C/S与B/S模式的讨论
- oracle9i数据库备份的问题??????????
- OracleJSP: oracle.jsp.parse.JspParseException: 行 # 1, <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
- 怎么样在Oracle中取得刚刚新增,修改,删除的记录.
- 重启后数据库无法启动,如何解决
- 救救我吧!!!!
- 如何以参数形式向数据库中进行插入数据 其中有日期数据类型的数据?
OPEN perm_cur_user FOR '...';