繁体   English   中英

SQL PLUS 查询结果保存到批处理文件中的变量以供进一步处理

[英]SQL PLUS query result save to variable in batch file for further processing

我一直在批处理脚本中使用以下命令从远程数据库中获取结果。

for /f  %%m in ('sqlplus -S debayan/[pwd]@[ip]:[port]/[DBInstance] @selectcommands.sql') do set theValue=%%m 
echo on 
echo "%theValue%"
PAUSE
echo off 

在打印时,该值以echo ""而没有变量theValue的值,该变量应该返回选择查询的值。

我的sql文件有以下简单的语句

set termout off
set echo off 
set pagesize 0
set linesize 500
set heading off
set verify off
set feedback off
set heading off
set serveroutput on
whenever sqlerror exit 16
whenever oserror exit 8
set autocommit on
SET ROWCOUNT 1
set heading off
select count(*)  from books;
commit;  
exit;

任何帮助将不胜感激。

您还可以创建一个临时文件,执行并最终删除它。 试试这个:

@ECHO OFF

SET MYTEMP=%TEMP%\mytemp.sql
echo set pages 0; > %MYTEMP%
echo select count(*) from dual; >> %MYTEMP%
echo exit; >> %MYTEMP%
for /f %%i in ('sqlplus -s "/ as sysdba" @%MYTEMP%') do @set COUNT=%%i
echo %COUNT%
DEL %MYTEMP%

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM