plSQLで全てのテーブルを表示する方法
すべてのテーブルを参照するには、次の2つの方法があります。
- システムテーブルの検索:データベースに接続してシステムテーブルを照会することで、テーブルに関する詳細情報を取得できます。次のクエリ文で、すべてのテーブル名を取得できます。
SELECT table_name FROM all_tables;
特定ユーザーのテーブルだけにアクセスしたい場合は、「all_tables」を「user_tables」とし、クエリ文の最後に「WHERE」句を追加してユーザー名を指定してください。
SELECT table_name FROM user_tables WHERE owner = 'your_username';
- PL/SQLブロックを使用してクエリを実行したり、結果をプリントできます。次に、すべてのテーブル名をプリントするPL/SQLブロックの例を示します。
DECLARE
table_name all_tables.table_name%TYPE;
BEGIN
FOR table_rec IN (SELECT table_name FROM all_tables) LOOP
table_name := table_rec.table_name;
DBMS_OUTPUT.PUT_LINE(table_name);
END LOOP;
END;
PL/SQLブロック・クエリーは、PL/SQL環境 (SQL*Plus や SQL Developer などのツール) で実行する必要があることに注意してください。ブロックを実行する前に、結果を出力するための DBMS_OUTPUT.PUT_LINE プロシージャが有効になっていることを確認してください。