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

Oracle:動的SQL

    独自のスキーマのテーブルを調べる簡単な例を次に示します。

    set serveroutput on
    declare
        c number;
    begin
        for r in (select table_name from user_tables) loop
            execute immediate 'select count(*) from ' || r.table_name
                into c;
            dbms_output.put_line(r.table_name ||': '|| c);
        end loop;
    end;
    /
    

    他の人のテーブルを見るには、dba_tablesを使用する必要があります 試し始めたとき、またはおそらくall_tables カウントできないテーブルは除外する必要がありますが、countで所有者を指定する必要もあります。 ステートメント。

    通常、SQLインジェクションを回避するためにバインド変数を使用する必要がありますが、このように連結してオブジェクト名を指定する必要があります。

    他に注意すべき点は、クエリで発生した間違いですが、Egorはこれを質問から削除しました。実行する動的SQL文字列は、セミコロン(;)で終了しないでください。 。




    1. ソートされたパスの利点について

    2. 集約関数のないmysqlのリレーショナル除算?

    3. PostgreSQLでのpg_sleep()のしくみ

    4. MySQLでパーセンタイルランクを計算する