以下代码位于批处理文件脚本(.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文件中的列名...请提前感谢...
答案 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