ネームスペース
SQL構文では、同じネームスペースを共有するオブジェクト名はそれぞれ一意である必要があります。これは、名前がSQL構文内で参照されたときに、正しいオブジェクトを見つけることができるようにするためです。
指定されたオブジェクト名がそれを所有するユーザーの名前(ネームスペース)で修飾されていない場合、オブジェクトに対する検索順序は次のようになります。
-
現在のユーザー・ネームスペース内にあるすべてのオブジェクト名から一致する名前を検索します。一致が検出されると、オブジェクト名は解決されます。
-
ユーザーのネームスペース内で一致が検出されない場合、パブリック・シノニムなどのオブジェクトを含む
PUBLICネームスペースで一致を検索します。パブリック・シノニムはSYSおよびTTREPオブジェクトに事前定義されています。一致が検出されると、オブジェクト名は解決されます。そうでない場合、そのオブジェクトは存在しません。
同じユーザーが所有する表、ビュー、マテリアライズド・ビュー、順序、プライベート・シノニム、PL/SQLパッケージ、ファンクション、プロシージャおよびキャッシュ・グループは、1つのネームスペースを共有しているため、これらの各オブジェクトの名前はそのネームスペース内で一意である必要があります。固有のネームスペース内に索引が作成されます。
たとえば、表とビューは同じネームスペースにあるため、同じユーザーが所有する表とビューは同じ名前を持つことができません。しかし、表と索引は異なるネームスペースにあるため、同じユーザーが所有する表と索引は同じ名前を持つことができます。
異なるユーザーが所有する表は、異なるユーザーのネームスペースに存在するため、同じ名前を持つことができます。