DBAまたは開発者は、多くの場合、Oracle内のさまざまなテーブルを一覧表示する必要があります。監査とセキュリティの目的で、Oracleのすべてのテーブルを一覧表示する必要があります。特定のテーブルスペースまたは特定のスキーマ内のすべてのテーブルを一覧表示したい場合や、最近作成されたすべてのテーブルを一覧表示したい場合があります。この投稿では、これらすべてを紹介します。
Oracleデータベースのすべてのテーブルおよび列情報は、SYS.TAB$およびSYS.COL$テーブルに格納されます。 Oracleは、テーブルと列に関する情報を取得するためのデータディクショナリビューを提供しています。
ビューには3つのカテゴリがあります
テーブルのすべてのリストは、上記のディクショナリビューから実行できます。
現在のuser/oracleshowテーブルが所有するすべてのテーブルを一覧表示するには
select tablespace_name, table_name from user_tables;
MySQLデータベースに精通している人は、MySQLのテーブルを一覧表示するためにshowtablesを使用していることを知っているでしょう。したがって、上記のクエリは基本的にoracleデータベースのoracleshowテーブルです
Oracleデータベース内のすべてのテーブルを一覧表示するには/oracle内のすべてのテーブルを表示するには
select owner,table_name,tablespace_name, from dba_tables;
現在のユーザーがアクセスできるすべてのテーブルを一覧表示するには
select owner, tablespace_name, table_name from all_tables;
Oracle/oracleのスキーマ内のテーブルのリストを取得します。スキーマ内のテーブルを表示します
select owner, tablespace_name, table_name from dba_tables where owner='&schema';
テーブルスペース内のOracleリストテーブルのクエリ
select owner, tablespace_name, table_name from dba_tables where tablespace_name='&tablespace_name';
Oracleでテーブルのスキーマを見つける方法
set lines 140 pages 1000 col table_name for a30 col owner for a7 select owner,table_name,initial_extent,ini_trans,freelists from dba_tables where table_name=upper('&tab_name');
oracl eでテーブルの作成日を確認する方法
select owner,object_name,object_type,status, to_char(last_ddl_time,'DD-MON-YY HH24:MI:SS') DDL_TIME,to_char(created,'DD-MON-YY HH24:MI:SS') CR_DATE from dba_objects where object_name =upper('&obj_name') and owner='&OWN' and object_type='TABLE', /
最近作成されたテーブルのリストを見つける方法
select owner,object_name,object_type,status, to_char(last_ddl_time,'DD-MON-YY HH24:MI:SS') DDL_TIME,to_char(created,'DD-MON-YY HH24:MI:SS') CR_DATE from dba_objects where created > sysdate -7 and object_type='TABLE' /
Oracleデータベース内のすべてのテーブルを列名で一覧表示
スキーマの分析、つまりさまざまなテーブル間の関係を分析するときに、同じ列名を持つすべてのテーブルを見つける必要がある場合があります。以下のクエリは、これを支援するために使用できます。手元にある助成金に応じてビューを使用できます
select owner,table_name from all_tab_columns where column_name = '&col_name'; or select owner, table_name from dba_tab_columns where column_name = '&col_name';
必要に応じて、同じ方法でさらに多くのクエリを作成できます。私が上に提示したクエリは、最もよく聞かれるクエリであり、最も頻繁に使用されます。タスクに参加するのに役立つクエリをリストに追加したい場合は、お知らせください。
関連記事
Oracleでテーブルのインデックスを検索する方法
オブジェクト統計がロックされています
Oracleでテーブルサイズを確認するためのクエリ
Oracleでテーブルスペースを確認する方法
OracleドキュメントからのAll_Tablesリファレンス