我正在编写批处理脚本来连接不同的数据库并为每个数据库执行相同的SQL脚本。 我想输出:如何使用批处理脚本格式化sql结果
"db_name1","Query_result: "xyz"
"db_name2","Query_result: abc"
"db_name3","Query_result: lmn"
但是现在Query_result
- 阀芯毕竟东西,甚至是SQL查询也得到添加到结果。 我只是简单地想在1st中显示数据库名称而在第二列中查询结果。第二列可能有多行或多列来显示结果,即假设Query_result包含多个用户名,那么每个名称应该在不同的行中。
这里是我的批处理脚本
@ECHO OFF
setlocal enabledelayedexpansion
for /f "delims== tokens=1,2" %%a in (InstallList.txt) do (
echo "DB_NAME : %%a","
echo.
echo QUERY_RESULT :
echo.
sqlplus %%b < mysql.sql
echo "
echo.
) >> result.csv
pause;
在InstallList.txt
dbname1=username/password
dbname2=username/password
dbname3=username/password
而且mysql.sql是
WHENEVER SQLERROR EXIT 1
SET LINES 32000
SET TERMOUT OFF ECHO OFF NEWP 0 SPA 0 PAGES 0 FEED OFF HEAD OFF TRIMS ON TAB OFF
SET SERVEROUTPUT ON
spool &1
select user_name from employee where designation= 'manager';
spool off
exit
请帮助我尽早。 谢谢。
您的输出目前的样子是什么? – SomethingDark 2015-03-31 11:02:01
目前在我的输出中,所有东西都连接到数据库然后查询,结果n然后与数据库断开连接,所有这些消息都包含在内。 – angel 2015-04-01 06:19:13
请再次检查问题,我已经做了一些更改。 – angel 2015-04-01 06:30:43