有关Oracle Views和Grants的多个查询

时间:2013-03-17 06:38:23

标签: oracle

多个问题 - 如果帖子变长,请原谅

拥有对Oracle架构的只读访问权限,我可以在其中看到某些视图 说视图' X '和' Y '

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

两个现有视图' X '和' Y '本身已创建关闭其他一些视图 A '和' B '!!

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

select * from <<schema_name>>.X

2&gt;但是我无法直接访问 A B 视图 - 所以我需要获得 A B

当我查看View X和View Y的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&gt;当视图将其定义为first_name,last_nameemp_first_name时,结果显示结果显示emp_last_name字段名称时感到困惑?

1 个答案:

答案 0 :(得分:1)

1&GT;对视图的观点可能会导致一些性能问题,主要取决于内部视图 阅读this AskTom post

中的更多内容

2 - ;这并不奇怪 - 这就是视图所做的,而不是让你选择整个表,它们让你只选择它的一部分。所以你需要A和B的补助金。

3&GT;奇怪,尝试这个查询,看看它是如何真正创建的 -

select dbms_metadata.get_ddl('VIEW', 'X', '<<schema_name>>') 
  from dual