.sql文件未返回csv文件中的列标题

时间:2014-03-29 20:17:13

标签: oracle batch-file sqlplus export-to-csv

以下代码位于批处理文件脚本(.bat文件)中,该脚本调用sql文件。

del C:\SREE\csvfile.csv    
sqlplus SERVERNAME/Test123@ldptstb @C:\SREE\sree.sql    
set from_email="SENDER_EMAIL_ID"     
set to_email="TO_EMAIL_ID"     
set cc_email="CC_EMAIL_ID"    
set email_message="Csv file from application server"    
set body_email=C:\SREE\sree.txt    
set sendmail=C:\Interface\sqlldr\common\SENDMAIL.VBS    
set interface_log=C:\SREE\csvfile.csv    
cscript %sendmail% -F %from_email% -T %to_email% -C %cc_email% -S %email_message% -B %body_email%  -A %interface_log% -O "ATTACHFILE" -A %body_email% -O "FILEASTEXT"
exit 

以下内容在.sql文件代码中执行SQL查询并将数据存储到csv文件中:

set pagesize 0    
set heading on    
set feedback off    
set trimspool on    
set linesize 32767    
set termout off    
set verify off    
set colsep ","    
spool C:\SREE\csvfile.csv    
SELECT Name, ID, Email, Role, Status FROM csvfile    
exit

输出存储在csv文件中并通过电子邮件获取此文件。

但问题是我没有在csv文件中获取列名。我曾尝试在许多场景中将这些名称作为csv文件中的cloumn标题。

任何人都可以帮我解决csv文件中的列名...请提前感谢...

2 个答案:

答案 0 :(得分:2)

当您set pagesize 0 headings are suppressed

  

SET PAGES [IZE] {14 | N}
  设置每页输出的行数。您可以将PAGESIZE设置为零以取消所有标题,分页符,标题,初始空白行和其他格式信息。

即使您明确set headings on,也是如此。

你可以将pagesize设置为非常大的东西,或者可能更有帮助,因为你可能并不真正想要破折号的分隔线,而是自己生成它们:

PROMPT Name,ID,Email,Role,Status

...在select陈述之前。

答案 1 :(得分:1)

使用GENERATE_HEADER配置设置并将其设置为Yes

SET GENERATE_HEADER = 'Yes'

请在此处查看此相关帖子https://community.oracle.com/thread/2325171?start=0&tstart=0