独自のスキーマのテーブルを調べる簡単な例を次に示します。
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文字列は、セミコロン(;
)で終了しないでください。 。