在何处为Oracle APEX应用程序创建视图

yqlxgs2m  于 2023-06-29  发布在  Oracle
关注(0)|答案(1)|浏览(127)

我有一个使用用户/模式A运行的Oracle APEX应用程序,我想访问驻留在模式/用户B中的数据。在模式A或B中创建这些视图是否更有意义?视图是否应该始终驻留在拥有数据的同一模式中?

2w3rbyxf

2w3rbyxf1#

你有很多选择。
重要的是,用户B应该(至少)授予用户A SELECT权限-否则,A无法访问B的数据。
如果用户驻留在不同的数据库中,那么它不是关于 * 赠款 *;你必须在它们之间创建一个数据库链接(但我想这里不是这样)。
下一步是什么?创建视图!去哪?你想去哪都行。

  • 如果在模式B中创建,Apex应用程序必须使用所有者名称引用它。比如说,
select * from b.some_view

另一个选项是在模式A中创建同义词:

create synonym some_view for b.some_view;

然后你会把它作为

select * from some_view;
  • 如果在模式A中创建它,则必须通过在表名前面加上所有者名称来引用B的表,例如。
create view some_view as
  select e.employee_name, e.employee_id
  from b.employees e

当然,也可以把它当作

select * From some_View

有什么更好的选择?看不出来;两种方法都可以,选择你最喜欢的一种。

相关问题