-2

多个问题 - 所以如果帖子太长,请原谅

对 Oracle 模式具有只读访问权限,我可以在其中看到某些视图
说视图“ X ”和“ Y

现在需要在这两个视图之上创建一个视图
1 >不确定从性能角度来看这是一个好主意吗?
(新视图将仅用于触发选择)

现有的两个视图“ X ”和“ Y ”本身是由其他一些视图“ A ”和“ B ”创建!!

奇怪的是我可以发出如下查询:

select * from <<schema_name>>.X

2 >但是我不能直接访问视图AB - 所以我需要授予AB 吗?

当我查看 View X 和 View YI 的 DDL 语句时,看到以下代码:

create view <<schema_name>>.X as 
select emp_first_name,emp_last_name,  
from <<schema_name>>.A

但是,当我发出这样的查询时:

select * from <<schema_name>>.X - 

我得到如下结果:

  first_name,last_name

3 > 对为什么结果显示字段名称感到困惑,例如first_name,last_name当视图将其定义为emp_first_nameand时emp_last_name

4

1 回答 1

1

1> Views on Views 可能会导致一些性能问题,主要取决于内部视图。在此 AskTom 帖子
中了解更多信息

2> 这并不奇怪——这就是视图的作用,而不是让您选择整个表格,而是让您只选择其中的一部分。所以你需要 A 和 B 的资助。

3> 奇怪,试试这个查询,看看它是如何创建的——

select dbms_metadata.get_ddl('VIEW', 'X', '<<schema_name>>') 
  from dual
于 2013-03-17T07:31:51.597 回答