PLSQLで左側にすべてのテーブルを表示する方法は何ですか?

PL/SQLで、すべてのテーブルを表示する方法は次の通りです:

  1. データベース管理システムの出力
  2. 出力します
SET SERVEROUTPUT ON
DECLARE
  table_name VARCHAR2(30);
BEGIN
  FOR tables IN (SELECT table_name FROM all_tables) LOOP
    table_name := tables.table_name;
    DBMS_OUTPUT.PUT_LINE(table_name);
  END LOOP;
END;
/
  1. SYS.DBMS_SQLとは、Oracleデータベース内でSQLステートメントを動的に実行するためのパッケージです。
  2. オープン_カーソル
  3. 解析する
  4. 実行する (じっこうする)
DECLARE
  cursor_id INTEGER;
  table_name VARCHAR2(30);
BEGIN
  cursor_id := DBMS_SQL.OPEN_CURSOR;

  DBMS_SQL.PARSE(cursor_id, 'SELECT table_name FROM all_tables', DBMS_SQL.NATIVE);
  DBMS_SQL.DEFINE_COLUMN(cursor_id, 1, table_name);

  IF DBMS_SQL.EXECUTE(cursor_id) > 0 THEN
    LOOP
      IF DBMS_SQL.FETCH_ROWS(cursor_id) > 0 THEN
        DBMS_SQL.COLUMN_VALUE(cursor_id, 1, table_name);
        DBMS_OUTPUT.PUT_LINE(table_name);
      ELSE
        EXIT;
      END IF;
    END LOOP;
  END IF;

  DBMS_SQL.CLOSE_CURSOR(cursor_id);
END;
/

これらの手法は、PL/SQLブロック内でシステムビューALL_TABLESをクエリし、テーブル名を出力ウィンドウに表示します。これらの手法を使用する前に、システムビューとパッケージにアクセス権を持っていることを確認してください。

bannerAds