Oracle PL/SQL过程,用于将具有表\u名称的表中的列数生成到CSV文件中

Oracle PL/SQL过程,用于将具有表\u名称的表中的列数生成到CSV文件中,oracle,plsql,Oracle,Plsql,此查询检索结果,但我希望对列数进行相同的计算 在使用PL/SQL过程的表中,该输出应进入CSV文件。在来自的帮助下创建CSV版本1(不使用PL/SQL,但仍创建CSV文件) 版本2,带有一点PL/SQL set colsep , set pagesize 0 set trimspool on set headsep off set linesize 100 set numw 10 spool myfile.csv select table_name,c

此查询检索结果,但我希望对列数进行相同的计算 在使用PL/SQL过程的表中,该输出应进入CSV文件。

在来自的帮助下创建CSV版本1(不使用PL/SQL,但仍创建CSV文件)

版本2,带有一点PL/SQL

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

如果您需要文件服务器端,版本3将使用utl_文件包,但我现在假设您在SQLplus或SQLdeveloper中运行它。

您的问题不清楚或似乎被切断了,您能澄清您的问题吗?我想使用pl/sql代码检索表中的列数。。输出应该写在一个文件(csv)中,从
创建或替换过程开始,适当地输入您的选择,并查看UTL_文件包的文档。向我们展示您尝试了什么,以及哪些没有按照您的预期工作。嘿,谢谢您。它非常简单。。。。但我有伟大的思想。。!!很好,我已经使用UTL_FILE.TQ检索了输出!!Holl但是如果列被添加到一个表中并且没有被分析,我会有任何问题吗???你说的“没有被分析”是什么意思?当收集表的统计数据时,只有更新或添加的列会被记录在all_tab_columns ryt中??哦,这是关于all_tab_columns视图中的不同问题,与原始数据无关问题。
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);
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;
/