0
select table_name,count(column_name) from all_tab_columns where owner ='HR'  

このクエリは結果を取得しますが、PL/SQL プロシージャを使用してテーブル内の列数を同じように計算し、その出力を CSV ファイルにする必要があります。

4

1 に答える 1

0

ここからヘルプを使用して 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 で実行することを想定していました。

于 2012-08-23T17:32:52.200 に答える