首页 > 解决方案 > 从 bacth 文件调用 SQL 脚本时的额外输出行

问题描述

我有一个批处理文件,我在其中将值传递给 SQL,然后执行 SQL 查询。我得到了想要的输出,但输出中还出现了几行。

批处理文件

set /p hostname="Enter hostname:"
echo %hostname%
set arg1=
set arg1=%arg1: =%
set COMMAND=sqlplus.exe -s %arg1% 
%COMMAND% @C:\Users\infodba\Desktop\test.sql %hostname%

SQL 文件

select ID from Tablename where pid = '&1';

在这里,我将主机名作为“&1”传递给查询,并得到以下输出:

old   1: select ID  from Tablename where pid='&1'     //extra lines
new   1: select ID from Tablename  where pid='SQY5760dznicWC'   //extra lines

SQY5760dznicWC/08_01_0_pdf_23o0akf8jwgy6.pdf    //desired output. 

但如果我删除 &1 并直接传递主机名,我不会得到那些额外的行。

请帮我弄清楚如何删除那些多余的行。

标签: sqlbatch-file

解决方案


VERIFY您可以通过设置为OFF使用以下命令来抑制变量替换行:

SET VERIFY OFF

您需要在 sql 脚本中编写此命令。


推荐阅读