我通过
set heading off
set termout off
spool c:\table_name.csv
select
col1||','||col2||','||col3 from table_name;
spool off
能将查询的结果导出为csv文件,请问能不能想办法将列名也导出去。就是说,csv文件中第一行为列名,第二行开始是数据。

解决方案 »

  1.   

    转一个定义csv文件句柄  
      CsvFileHandle:=UTL_FILE.FOPEN($外部引数.FilePath,$中間変数.FileName,'W');  
      输出文件头  
      $中間変数.MASSAGE_HEAD:='集計年月日'||   ','   ||   '交通機関コ-ド'   ||   ','   ||   '交通機関名,利用人数(昼)'   ||   ','   ||   '利用人数(夜)';  
      UTL_FILE.PUT_LINE(CsvFileHandle,$中間変数.MASSAGE_HEAD);  
      输出文件  
      $中間変数.MASSAGE_AGE:=TO_CHAR($中間変数.SYSDATE_DATE,'YYYYMMDD')||','||$中間変数. JTJG_CODE||','||$中間変数.JTJG_NAME||','||TO_CHAR($中間変数.LYRSZ_NUMBER)||', '||TO_CHAR($中間変数.LYRSY_NUMBER);  
      UTL_FILE.PUT_LINE(CsvFileHandle,$中間変数.MASSAGE_AGE);
      

  2.   

    set heading off  拿掉就可以了呀。
      

  3.   

    hdyd,按照你的方法,显示的第一行是这样的:
    col1||''||col2||''||col3
      

  4.   

    set termout off
    spool c:\table_name.csv
    SELECT col1 || ',' || col2 || ',' || col3 AS "col1,col2,col3"
    FROM table_name;
    spool off
      

  5.   

    bugchen888(臭虫) ,
    csv文件有报错:identifier is too long
      

  6.   

    set TRIM off
    set TAB off 
    set heading off 
    set termout off
    set LIN 4000
    set PAGES 10000
    spool   date_log.csv
    select 'col1,col2,col3,col4,col5,col6,col7'  from dual
    --上句是控制表头的字段名,且上述字段名要与下的脚本字段统一。
    UNION ALL
    select col1 || ',' || col2 || ',' || col3 || ',' || col4 || ',' || col4 || ',' || col5 || ',' || col6 ||
      from st_user;
    spool off
    exit;
    /