sql >> データベース >  >> RDS >> Oracle

Oracleでオブジェクトの所有者を見つけるにはどうすればよいですか?

    ALL_OBJECTSビューをクエリできます:

    select owner
         , object_name
         , object_type
      from ALL_OBJECTS
     where object_name = 'FOO'
    

    同義語を見つけるには:

    select *
      from ALL_SYNONYMS
     where synonym_name = 'FOO'
    

    明確にするために、ユーザーの場合 ユーザーのSQL文は、スキーマ修飾のないオブジェクト名(「FOO」など)を参照します。OracleFIRSTは、ユーザーのスキーマでその名前のオブジェクト(そのユーザーのスキーマの同義語を含む)をチェックします。 Oracleがユーザーのスキーマからの参照を解決できない場合、Oracleはパブリックシノニムをチェックします。

    特定のtable_nameの制約を具体的に探している場合:

    select c.*
      from all_constraints c 
     where c.table_name = 'FOO'
     union all
    select cs.*
      from all_constraints cs
      join all_synonyms s 
        on (s.table_name = cs.table_name
         and s.table_owner = cs.owner 
         and s.synonym_name = 'FOO'
           )
    

    HTH

    -補遺:

    ユーザーにDBA_ビューへのアクセスが許可されている場合(たとえば、ユーザーにSELECT_CATALOG_ROLEが許可されている場合)、「DBA_」に置き換えることができます。 'ALL_の代わりに' 上記のSQLの例の'。 ALL_x ビューには、特権が付与されているオブジェクトのみが表示されます。 DBA_x ビューには、権限があるかどうかに関係なく、すべてのデータベースオブジェクトが表示されます。



    1. 日時列で過去8時間のデータを取得するEloquent

    2. JPASETIDENTITY_INSERTが機能しない

    3. SQL:1つの列と対応する他の列の最大値を取得する

    4. 3つのテーブルで参加する