如何使用来自另一个模式的表编写存储过程?
How to write stored procedures using tables from another schema?
是否需要table在HR用户中才能调用Oracle的函数和过程?当我 运行 从另一个用户那里运行时,它给我一个编译错误。
对于我的项目,我想运行 其他用户的函数和过程。我该如何实施?
要在另一个模式中使用 table 编写函数或过程,table 所有者需要授予我们所需的权限。例如:
SQL> conn hr/hr
SQL> grant select on employees to mousumi;
或请超级用户为您完成:
SQL> conn dba_user/password
SQL> grant select on hr.employees to mousumi;
可以将特权授予角色,但我们不能使用这些特权来创建过程或视图。为此,特权必须直接授予我们。 Find out more.
当我们引用时,我们需要包含架构名称:
SQL> select * from hr.employees;
或者我们可以为它创建一个同义词。
SQL> create synonym employee_table for hr.employees;
SQL> select * from employee_table;
同义词只是一个标签:它可以是我们喜欢的任何东西,只要它在我们的模式中是唯一的(并且符合 Oracle 命名约定)。 Find out more.
是否需要table在HR用户中才能调用Oracle的函数和过程?当我 运行 从另一个用户那里运行时,它给我一个编译错误。
对于我的项目,我想运行 其他用户的函数和过程。我该如何实施?
要在另一个模式中使用 table 编写函数或过程,table 所有者需要授予我们所需的权限。例如:
SQL> conn hr/hr
SQL> grant select on employees to mousumi;
或请超级用户为您完成:
SQL> conn dba_user/password
SQL> grant select on hr.employees to mousumi;
可以将特权授予角色,但我们不能使用这些特权来创建过程或视图。为此,特权必须直接授予我们。 Find out more.
当我们引用时,我们需要包含架构名称:
SQL> select * from hr.employees;
或者我们可以为它创建一个同义词。
SQL> create synonym employee_table for hr.employees;
SQL> select * from employee_table;
同义词只是一个标签:它可以是我们喜欢的任何东西,只要它在我们的模式中是唯一的(并且符合 Oracle 命名约定)。 Find out more.