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);

带有一点 PL/SQL 的版本 2

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 回答