批处理文件和SQLplus:比较2个查询

时间:2018-04-16 08:58:30

标签: batch-file compare sqlplus

[解决] 你好,
(对不起,如果我的英语不准确,我不是英语)
我正在使用"测试"数据库和工作"数据库
我想知道我的表中有多少结果"事件"在每个数据库中进行比较
我在.bat文件中使用SQLplus

我解决了只在1个文本文件中写入的问题(但你可以用2来完成)
在resultat.txt中写入查询工作数据库的结果:

echo SELECT count(*) FROM table; | sqlplus -s user/password@dbprod > path\resultat.txt

在变量return1(我认为最后一行)中设置resultat.txt的内容:

for /f "tokens=*" %%i in (path\resultat.txt) do set return1=%%i 

与测试相同的命令

echo SELECT count(*) FROM table; | sqlplus -s user/password@dbtest > path\resultat.txt
for /f "tokens=*" %%i in (path\resultat.txt) do set return1=%%i

这里我覆盖了resultat.txt文件,但你可以写入另一个文本文件
现在您可以显示和测试相等性:

echo resultat prod : %return1%
echo resultat test : %return2%
if %return1%==%return2% ( 
echo IMPORT REUSSI 
) else ( 
ECHO IMPORT RATE 
) 
pause

1 个答案:

答案 0 :(得分:0)

[已解决]你好,
(对不起,如果我的英语不准确,我不是英语)
我正在使用“测试”数据库和“工作”数据库 我想知道我在每个数据库中的表“事件”中有多少结果来比较
我在.bat文件中使用SQLplus

我解决了只在1个文本文件中写入的问题(但你可以用2来完成)
在resultat.txt中写入查询工作数据库的结果:

echo SELECT count(*) FROM table; | sqlplus -s user/password@dbprod > path\resultat.txt

在变量return1(我认为最后一行)中设置resultat.txt的内容:

for /f "tokens=*" %%i in (path\resultat.txt) do set return1=%%i 

与测试相同的命令

echo SELECT count(*) FROM table; | sqlplus -s user/password@dbprod > path\resultat.txt
for /f "tokens=*" %%i in (path\resultat.txt) do set return1=%%i

这里我覆盖了resultat.txt文件,但你可以写入另一个文本文件
现在您可以显示和测试相等性:

echo resultat prod : %return1%
echo resultat test : %return2%
if %return1%==%return2% ( 
echo IMPORT REUSSI 
) else ( 
ECHO IMPORT RATE 
) 
pause