Oracle 从批处理文件运行SQL脚本-输出不符合预期

Oracle 从批处理文件运行SQL脚本-输出不符合预期,oracle,batch-file,sqlplus,Oracle,Batch File,Sqlplus,我需要从.bat文件运行.sql文件。.sql文件的输出应重定向到.txt文件。我能够做到这一点,但是sql文件正在打印带“uz”下划线的列名,并且在文件末尾打印“选择了3行”。我不希望列名和“选择的3行”显示在输出文件中。你能指出我做错了什么吗? 下面是我的代码的详细信息。请注意,我的sql必须使用sqlplus在oracle db中运行 sql\u file.sql SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0 SET UNDERLINE

我需要从.bat文件运行.sql文件。.sql文件的输出应重定向到.txt文件。我能够做到这一点,但是sql文件正在打印带“uz”下划线的列名,并且在文件末尾打印“选择了3行”。我不希望列名和“选择的3行”显示在输出文件中。你能指出我做错了什么吗? 下面是我的代码的详细信息。请注意,我的sql必须使用sqlplus在oracle db中运行

sql\u file.sql

SET HEADING OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
SET UNDERLINE off
select 'This '|| emp_name || ' belongs to ' || dept_name || ' department' as emp_data from emplyoee;

exit
批处理文件.bat

@echo off

sqlplus -s -l scott/tiger@myoracledb @"C:\Data Files\sql_file.sql" >> "C:\Data Files\output_file.txt"
我希望输出文件.txt看起来像

This Charles employee belongs to Finance department
This Chris employee belongs to Sales department
This John employee belongs to Engineering department
但是,我的代码生成的输出是

emp_data
--------------------------------------------------
This Charles employee belongs to Finance department
This Chris employee belongs to Sales department
This John employee belongs to Engineering department

3 rows selected

我个人不习惯在一行上设置命令。。。或许可以这样尝试:

SET HEADING OFF 
SET FEEDBACK OFF 
SET ECHO OFF 
SET PAGESIZE 0

为什么您可能会使用批处理文件代码来剥离头记录和尾记录,我相信您只需更改查询,使其不会输出该信息。您应该更改您的问题标签,以包括类似sql查询的内容。我的DB people一直为我输出查询,它从不输出标题和尾部信息。这很奇怪-我测试了你的sql脚本(包括一行集合),它对我有效。你用的是什么版本?(我在11.2.0.1上测试了它)这类问题看起来像你的问题:@Zohar-11.2.0.1是oradb版本吗?我的数据库是oracle 12.1.0.2.0 EE。@Sqaushman-我读了你之前发送的链接,但他们的解决方案对我不起作用。我尝试了这个,但没有起作用。我的感觉是这些设置选项被忽略了。如果我在sql developer中运行sql_file.sql的内容,它会按照我想要的方式生成结果。但我的要求是从批处理文件中运行它。这个链接表示忽略set命令的想法。我在这篇文章中不理解的是-代码是批处理文件还是.sql文件的一部分。此外,他们给出了shell脚本(unix/linux)而不是批处理脚本(windows)的示例。是-这些是SQL PLus命令-因此它们放在SQL文件中,由SQL PLus运行。。。