cmd脚本执行.sql文件

我的d:\sp_bak目录下有10000多个*.SQL文件
想通过批处理执行

如果用下面两个其中一个代码,则系统只会执行第一个SQL文件,然后就停下来
@echo off
for /r d:\sp_bak %%i in (*.sql) do sqlplus scott/tiger@db_shop @%%i
pause

@echo off
for /r d:\sp_bak %%i in (*.sql) do cmd.exe /c sqlplus scott/tiger@db_shop @%%i
pause


如果用这个代码,则系统会弹出N多个CMD窗口,直到把系统卡死(如果*.sql文件少,则可用这个方法)
@echo off
for /r d:\sp_bak %%i in (*.sql) do start cmd.exe /c sqlplus scott/tiger@db_shop @%%i
pause



求CMD脚本代码,一次性全部执行这些*.sql文件

 

不要使用cmd依次调用.sql文件,这样相当于调用了N个cmd.exe。

一次执行方法如下:

1 写一个公共的global.sql文件,内容如下:

Sql代码 复制代码  收藏代码
  1. @d:\sp_bak\1.sql   
  2. @d:\sp_bak\2.sql   
  3. ...  
@d:\sp_bak\1.sql
@d:\sp_bak\2.sql
...


2 用cmd调用这个公共sql即可。

当然,这里面的公共文件名不好办,文件太多了,不好写,下面给一个简单的办法:

可以使用DOS命令来获得所有文件名.
dir . >> sqlfile.txt
然后编辑SQLFILE.TXT文件,去掉无关信息,在文件名前加上@,并把SQLFILE.TXT改名为SQLFILE.SQL就可以了.这样执行@SQLFILE.SQL就相当于批处理文件了

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值