-2

複数の質問-投稿が長くなる場合は失礼します

特定のビューを表示できるOracleスキーマへの読み取り専用アクセス権がありますビュー「 X」および「Y」と
言います

次に、これら2つのビューの上にビューを作成する必要があります
1>パフォーマンスの観点から、これが良いアイデアかどうかわかりませんか?
(新しいビューは、selectのみを起動するために使用されます)

2つの既存のビュー「X」と「Y」は、それ自体が他のいくつかのビュー「A」と「B」から作成されています。

奇妙なことに、次のようなクエリを実行できます。

select * from <<schema_name>>.X

2>ただし、ビューAまたはBに直接アクセスすることはできません。そのため、 ABに助成金を付与する必要があり ますか?

ビューXとビュー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

first_name,last_name3>ビューにととして定義されている場合のemp_first_nameように、結果にフィールド名が表示される理由について混乱していemp_last_nameますか?

4

1 に答える 1

1

1> ビューのビューはパフォーマンスの問題を引き起こす可能性があり、主に内部ビューに依存します。このAskTom投稿
で詳細を読む

2> これはおかしなことではありません。それがビューの機能であり、テーブル全体を選択するのではなく、その一部のみを選択できるようにします。したがって、A と B に対する助成金が必要です。

3> 奇妙なことに、このクエリを試して、実際にどのように作成されたかを確認してください。

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