Security Model
DBMS_SQL
is compiled with AUTHID
CURRENT_USER.
Any DBMS_SQL
subprograms called from an anonymous PL/SQL block are run using the privileges of the current user.
原因:用户没有权限去调用该表的数据
方法:使该用户获得查询权限, 加上: AUTHID CURRENT_USER
create or replace FUNCTION test(TABLE_NAME IN VARCHAR2, OWNER IN VARCHAR2) RETURN NUMBER
AUTHID CURRENT_USER AS
CNT NUMBER:=0;
BEGIN
SELECT COUNT(TABLE_NAME) INTO CNT FROM ALL_TAB_COLUMNS WHERE TABLE_NAME =TABLE_NAME AND OWNER =OWNER;
RETURN (CNT);
END;