找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27223|回复: 6

[系统相关] 求助批处理查询数据库并赋值给变量

[复制链接]
发表于 2020-10-16 10:45:33 | 显示全部楼层 |阅读模式
想做一个bat,从数据库中查出一个字段值,然后赋值被bat的变量。以下脚本可以登录数据库,但是不能成功输入查询命令?大神帮看看哪里有问题?
  1. for /f "delims=" %%a in ('echo select date from product where productid='01' ;^|sqlplus product/qazwsx123@productinfo') do echo %%a
  2. pause
复制代码
 楼主| 发表于 2020-10-19 16:30:29 | 显示全部楼层
求高手支招
发表于 2020-10-19 20:24:08 | 显示全部楼层
回复 2# 343355202


for /f "delims=" %%a in ('echo select date from product where productid^="01"^; ^| sqlplus product/qazwsx123@productinfo') do echo %%a
试试这样可以吗?
 楼主| 发表于 2020-10-20 11:20:11 | 显示全部楼层
回复 3# Batcher

再将双引号改成单引号即可。非常感谢Batcher!!
执行结果
  1. 连接到:Oracle Database ...
  2. SQL>
  3.    DATE
  4. ----------
  5.   20201020
  6. SQL> 从 Oracle Database ... 断开
复制代码
在请教下如何将select出来的date的值“20201020”,赋值给bat中的其它变量?
发表于 2020-10-21 00:19:44 | 显示全部楼层
回复 4# 343355202


for /f "delims=" %%a in ('echo select date from product where productid^="01"^; ^| sqlplus product/qazwsx123@productinfo ^| findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]')
试试这样能否取到日期那一行
 楼主| 发表于 2020-10-21 17:51:38 | 显示全部楼层
回复 5# Batcher


    感谢@Batcher的指导,功能已全部实现!附上代码,共享~
  1. for /f "delims=" %%a in ('echo select date from product where productid^='01'^; ^| sqlplus product/qazwsx123@productinfo ^| findstr [0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]') do(
  2. set date=%%a
  3. )
  4. set ldate=%date: =%
  5. echo DB中的日期是%ldate%
复制代码
发表于 2020-10-21 22:05:50 | 显示全部楼层
回复 6# 343355202


如果需要执行的SQL比较长、特殊字符比较多,也可以试试这个思路:
https://mp.weixin.qq.com/s/QxbMDwWiuWJIBublB1Dp9A
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 06:38 , Processed in 0.019233 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表