読者です 読者をやめる 読者になる 読者になる

Oracleで全テーブルのデータを削除/取得するSQLを出力

db

大層なものではないですが、こんな感じ。もっと良いやり方があるかもしれませんが。

--全テーブルのデータを削除するDELETE文を生成
SELECT 'DELETE FROM ' || TABLE_NAME FROM USER_TABLES ORDER BY TABLE_NAME
--全テーブルのデータ件数を取得するSELECT文を生成
SELECT 'SELECT ''' || TABLE_NAME || ''' AS テーブル名, COUNT(*) AS レコード数 FROM ' || TABLE_NAME || ' UNION' FROM USER_TABLES
--最後の行のみUNIONを削除

ちなみに、SQL Serverではこんな感じでした。