【发布时间】:2013-12-15 14:22:46
【问题描述】:
我有一个名为 CAL_TAX 的存储过程,它由 EMP_DBA 模式创建,现在我想将此 SP 上的执行权限授予用户 USER1。我已经执行了以下语句:
CREATE USER USER1 IDENTIFIED BY USER1234;
GRANT CONNECT TO USER1;
GRANT RESOURCE TO USER1;
GRANT CREATE SESSION TO USER1;
GRANT EXECUTE ON EMP_DBA.CAL_TAX TO USER1;
DECLARE
CURSOR C1 IS SELECT TABLE_NAME FROM USER_TABLES;
CMD VARCHAR2(200);
BEGIN
FOR C IN C1 LOOP
CMD:='GRANT SELECT ON ' || C.TABLE_NAME || ' TO USER1';
EXECUTE IMMEDIATE CMD;
END LOOP;
END;
当我以 USER1 身份连接并执行 SP CAL_TAX 时,我收到以下错误消息。谁可以帮我这个事 ?如果以 EMP_DBA 身份连接,我执行 SP 没有问题
BEGIN CAL_TAX; END;
*
ERROR AT LINE 1:
ORA-06550: LINE 1, COLUMN 7:
PLS-00201: IDENTIFIER 'CAL_TAX' MUST BE DECLARED
ORA-06550:LINE 1, COLUMN 7:
PL/SQL: STATEMENT IGNORED
这是 SP CAL_TAX 的一部分。
CREATE OR REPLACE PROCEDURE CAL_TAX
AUTHID CURRENT_USER
IS
.
.
.
【问题讨论】: