【问题标题】:.sql file not returning the column headers in csv file.sql 文件未返回 csv 文件中的列标题
【发布时间】:2014-05-09 07:18:15
【问题描述】:

以下代码在调用sql文件的批处理文件脚本(.bat文件)中。

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 文件中的列名的代码。在此先感谢...

【问题讨论】:

  • 我相信你正在使用Oracle。从您使用 sqlplus 的命令
  • 我正在使用 Oracle 工具,并且能够获取电子邮件附件中 csv 文件中的数据。但我无法获取 csv 文件中的列名。

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


【解决方案1】:

当你set pagesize 0headings are suppressed:

设置页面[IZE] {14 | n}
设置每页输出的行数。您可以将PAGESIZE 设置为零以隐藏所有标题、分页符、标题、初始空白行和其他格式信息。

即使您随后明确地set headings on 也是如此。

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

PROMPT Name,ID,Email,Role,Status

...在您的select 声明之前。

【讨论】:

  • 嗨,Alex Poole,它适用于 PROMPT。真的非常感谢您的帮助。
【解决方案2】:

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

SET GENERATE_HEADER = 'Yes'

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2015-07-26
    • 1970-01-01
    • 2018-10-13
    • 2015-07-09
    相关资源
    最近更新 更多