簡単な答えは
select 'select ''' || table_name || ''' from ' || table_name || '
having count(*) = 0;' from dba_tables where owner='SBST';
説明
これを実行できます...行のないもののテーブル名を出力するだけです:sqlplusを使用していると仮定しますが、私はそれをテストするためにヒキガエルを使用し、それは非常にうまく機能しました。
spool tmp.sql
select 'select ''' || table_name || ''' from ' || table_name || '
having count(*) = 0;' from user_tables where owner='SBST';
spool off;
@tmp.sql
「tmp.sql」ファイルを開くと、すべてのテーブルが表示されます。
select 'PERSONS' from PERSONS having count(*) = 0;
select 'DEPARTMENT' from DEPARTMENT having count(*)=0;
あなたの場合、スキーマが必要であり、ユーザーSBSTに接続する場合、スキーマは上記のコードのユーザーですが、他のユーザーに接続する場合は、DBA_TABLESを使用して、所有者属性をSBSTに割り当てる必要があります。
USER_TABLESはあなたが所有するテーブルですALL_TABLESは所有するテーブルであり、 DBA_TABLESへの明示的なアクセスが許可されている他のユーザーによって所有されるテーブルはデータベース内のすべてのテーブルです
このような
set echo off heading off feedback off lines 100 pages 0;
spool tmp.sql
select 'select ''' || table_name || ''' from ' || table_name || '
having count(*) = 0;' from dba_tables where owner='SBST';
spool off;
@tmp.sql
3つすべてが基礎となるSYSテーブルのビューですが、結果を制限するためにUSER_ビューとALL_ビューがユーザー名/セキュリティ情報に参加しています

**まとめ **
このクエリを実行してください
select 'select ''' || table_name || ''' from ' || table_name || '
having count(*) = 0;' from dba_tables where owner='SBST';