2016-12-13 21 views
0

のOracle DBスキーマのリストを識別しようとしたとき、私はthisthis言うのいずれかdba_segmentsを使用しようとしているかのように多くの答えに出くわしましたdba_usersを使用してください。違いは、私がデータベース内に作成したリストのスキーマを把握しようとしています

しかし、それらを私のデータベースに使用すると、結果に大きな違いがあります。

私はどちらが正しいか(dba_segmentsまたはdba_users)を説明する回答を探しています。私の質問は「データベースで使用可能なすべてのスキーマのリストを取得する方法」とは思わないようにしてください。

答えて

4

DBA_SEGMENTS SEGMENTS示し - セグメントを使用するオブジェクトは、一般的にテーブルまたはインデックスと考えることができます - あなたは何のセグメントを持っていないスキーマを持つことができ、スキーマ

によって所有されています。ユーザーはシノニムまたはPL/SQLユニットを所有できますが、セグメントはありません。

ここ

[email protected] >select distinct segment_type from dba_segments; 


SEGMENT_TYPE  
LOBINDEX   
INDEX PARTITION 
ROLLBACK   
NESTED TABLE  
TABLE PARTITION 
LOB PARTITION  
LOBSEGMENT  
INDEX    
TABLE    
CLUSTER 

DBA_USERSは、彼らが「データ」か

はここにいないとスキーマを見つける方法を自身のかどうか、あなたのデータベース内のすべてのユーザーが表示されます私の12cのシステムのためのセグメントタイプのリストがありますセグメント、または一方通行

[email protected] >select distinct username 
    2 from dba_users 
    3 minus 
    4 select distinct owner 
    5 from dba_segments; 


USERNAME    
ANONYMOUS    
APEX_LISTENER   
APEX_PUBLIC_USER  
APEX_REST_PUBLIC_USER 
APPQOSSYS    
BASIC_PRIVS    
BI... 
+0

ありがとうございます。つまり、セグメントは別のデータベースオブジェクトと似ていますか?しかし、このクエリ( 'select * from ALL_OBJECTS from OBJECT_TYPE '%SEGMENT%';')を使用すると、セグメントが表示されません。データベースに多数のセグメントがあることは確かです。そして、私があなたの答えを正しく理解していれば、 'dba_users'は利用可能なすべてのスキーマ/ユーザをデータベースに正しくリストアップしていますので、確認してください。 – hagrawal

+0

申し訳ありません@hagrawal - あなたがこのコメントを残していたので私の答えを修正しました - リフレッシュしてください。 DBA_USERS – thatjeffsmith

+0

クエリにユーザーのリストが必要な場合は、まったく問題はありません。あなたは完全に答えました、あなたの時間をありがとう。 – hagrawal

関連する問題