Stored procedures 打开光标时表或视图不存在?
我有一个程序来识别每个被锁定的 由于无效登录尝试而被锁定的帐户。但是,sp创建时出现编译错误:“ORA-00942:表不存在”。如果我自己运行select语句,它可以正常工作,但在sp内。有人能帮忙吗Stored procedures 打开光标时表或视图不存在?,stored-procedures,oracle11g,cursor,Stored Procedures,Oracle11g,Cursor,我有一个程序来识别每个被锁定的 由于无效登录尝试而被锁定的帐户。但是,sp创建时出现编译错误:“ORA-00942:表不存在”。如果我自己运行select语句,它可以正常工作,但在sp内。有人能帮忙吗 Create or replace PROCEDURE IdentifyLockedAccounts(p_recordset OUT SYS_REFCURSOR) AS BEGIN OPEN p_recordset FOR SELECT USERNAME FROM DBA_USERS WHERE
Create or replace PROCEDURE IdentifyLockedAccounts(p_recordset OUT SYS_REFCURSOR) AS
BEGIN
OPEN p_recordset FOR SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS = 'LOCKED' OR ACCOUNT_STATUS = 'LOCKED(TIMED)';
END IdentifyLockedAccounts;
/
您的模式可能通过某个角色对DBA\U用户具有SELECT权限(例如SELECT\U CATALOG\U角色)——这就是您能够通过SQL客户机运行它的原因 在编译plsql/视图的过程中不启用角色,因此您必须将SELECT ON DBA_用户直接授予模式,以便能够在存储过程中使用它
GRANT SELECT ON DBA_USERS to YOURSCHEMA;