select table_name,count(column_name) from all_tab_columns where owner ='HR'
このクエリは結果を取得しますが、PL/SQL プロシージャを使用してテーブル内の列数を同じように計算し、その出力を CSV ファイルにする必要があります。
ここからヘルプを使用して CSV バージョン 1 を作成します (PL/SQL を使用しませんが、CSV ファイルを作成します) 。
set colsep ,
set pagesize 0
set trimspool on
set headsep off
set linesize 100
set numw 10
spool myfile.csv
select table_name,count(column_name) as cnt
from all_tab_columns where owner ='HR'
group by table_name);
バージョン 2 と少しの PL/SQL
set serveroutput on
begin
for c in (select table_name,count(column_name) as cnt
from all_tab_columns where owner ='HR' group by table_name)
loop
dbms_output.put_line(c.table_name||';'||c.cnt);
end loop;
end;
/
ファイルサーバー側が必要な場合、バージョン 3 は utl_file パッケージを使用しますが、SQLplus または SQLdeveloper で実行することを想定していました。