如何 运行 来自系统的功能?
How to run a function from system?
所以我有一个名为 doLogin 的函数,它接收两个参数,并且我创建了一个名为 user_login 的用户。
我已授予 user_login 以下权限:
GRANT CREATE SESSION TO user_login;
GRANT EXECUTE ON DoLogin TO user_login;
GRANT SELECT ON Utilizadores TO user_login; --do Login gets information from this table
但是当使用 user_login 连接并尝试 运行 函数时,我收到以下错误:
Erro: java.sql.SQLException: ORA-06550: line 1, column 13: PLS-00201: identifier 'DOLOGIN' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored
编辑:我希望只有系统和 user_login 可以访问此功能
假设您在架构中定义了函数 DoLogin
(例如 yourSchema
)并且您需要从不同的用户内部使用它,例如 user_login
。
您可以决定使用
调用该函数
yourSchema.DoLogin
或从 yourSchema
中创建一个 public 同义词,然后在不添加架构名称的情况下调用该函数:
create public synonym DoLogin for DoLogin
所以我有一个名为 doLogin 的函数,它接收两个参数,并且我创建了一个名为 user_login 的用户。 我已授予 user_login 以下权限:
GRANT CREATE SESSION TO user_login;
GRANT EXECUTE ON DoLogin TO user_login;
GRANT SELECT ON Utilizadores TO user_login; --do Login gets information from this table
但是当使用 user_login 连接并尝试 运行 函数时,我收到以下错误:
Erro: java.sql.SQLException: ORA-06550: line 1, column 13: PLS-00201: identifier 'DOLOGIN' must be declared ORA-06550: line 1, column 7: PL/SQL: Statement ignored
编辑:我希望只有系统和 user_login 可以访问此功能
假设您在架构中定义了函数 DoLogin
(例如 yourSchema
)并且您需要从不同的用户内部使用它,例如 user_login
。
您可以决定使用
调用该函数yourSchema.DoLogin
或从 yourSchema
中创建一个 public 同义词,然后在不添加架构名称的情况下调用该函数:
create public synonym DoLogin for DoLogin