Oracle bat批处理文件执行SQL文件
现实的项目中经常可能会出现需要用批处理文件来执行sql文件。
下面就介绍下用bat批处理文件调用独立的sql文件和数据库中的存储过程。
一、bat文件调用sql文件
首先,做一个简单的sql文件(log.sql)。
在这个SQL文件中我们创建了一个表。
接下来,我们来建一个bat批处理文件(log.bat)。
在这个bat文件里面我们调用绝对路径的sql文件,并将执行过程及结果输出到log.txt文件中。
最后,我们运行bat文件,来看下一log.txt文件记录内容。
通过这个日志我们可以看到,创建log表是成功的了。
再去数据库中确认,也可以看到log 表确实是建立起来了。
二、bat文件调用数据库中的存储过程
这个调用过程和上面的调用过程原理是一样的,在此就做个简单的说明。
假设数据库中一个存储过程,名称为Produce_log
我们只需要修改独立的sql文件如下即可:
execute Produce_log;
exit;。
运行.bat执行sql文件——mysql
test.bat:
@HO OFF
SET dbhost=127.0.0.1 SET dbuser=root SET dbpasswd=123456 SET dbName=test SET sqlpath=%~dp0 set sqlfile=test.sql
cd C:\Program Files\MySQL\MySQL Server 5.5\bin
::执行SQL脚本
mysql -h%dbhost% -u%dbuser% -p%dbpasswd% < %sqlpath%%sqlfile% --default-character-set=utf8
ECHO OK! PAUSE
-- ----------------------------- Records of test_1 -- ---------------------------INSERT INTO `test_1` VALUES ('1', 'aaa', '县城区污水处理厂', '四川'); INSERT INTO `test_1` VALUES ('2', 'bbb', '县工业园区污水处理厂', '四川'); INSERT INTO `test_1` VALUES ('3', 'ccc', '县污水处理厂', '四川'); INSERT INTO `test_1` VALUES ('4', 'ddd', '镇污水处理厂', '四川');
使用BAT批处理执行sql语句的代码
使用BAT批处理执行sql语句的代码有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法1、把待执行Sql保存在一个文件,这里为20110224.sql。
2、新建一个扩展名.bat的批处理文件,输入下面命令并保存后,双击.bat文件,系统会自动执行20110224.sql的语句:复制代码代码如下:osql -S gdjlc -d TestDB -U sa -P1 -i 20110224.sqlosql参数见下面====================================================================== =:E:\>osql /?icrosoft (R) SQL Server 命令行工具版本10.0.1600.22 NT INTEL X86版权所有(c) Microsoft Corporation。
保留所有权利。
注意: osql 并不支持SQL Server 2008的所有功能。
请使用sqlcmd。
有关详细信息,请参阅SQL Server 联机丛书。
用法: osql [-U 登录ID] [-P密码][-S 服务器] [-H 主机名] [-E 可信连接][-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值][-h 标题] [-s 列分隔符] [-w 列宽][-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符] [-L 列出服务器] [-c 命令结束] [-D ODBC DSN 名称] [-q "命令行查询"] [-Q "命令行查询" 并退出][-n 删除编号方式] [-m 错误级别][-r 发送到stderr 的消息] [-V 严重级别][-i 输入文件] [-o 输出文件][-p 打印统计信息] [-b 出错时中止批处理][-X[1] 禁用命令,[退出的同时显示警告]][-O 使用旧ISQL 行为禁用下列项]<EOF> 批处理自动调整控制台宽度宽消息默认错误级别为-1 和1[-? 显示语法摘要]通过批处理执行sql命令实例:通过批处理执行sql命令:1. Restore.bat文件内容:osql -E -S -i C:\TempDB\Restore.txt2. Restore.txt文件内容:复制代码代码如下:use masterif exists (select * from sysdevices where name='TruckDB')EXEC sp_dropdevice 'TruckDB'ElseEXEC sp_addumpdevice 'disk','TruckDB', 'C:\Program Files\Microsoft SQL Server\MSS QL\Data\TruckDB.mdf'restore database TruckDBfrom disk='c:\TempDB\TruckDB'with replace导出数据到txt:复制代码代码如下:EXEC master..xp_cmdshell 'bcp "test..mintest" in d:\mintest2.txt -c -Sd02 -Usa -P'EXEC master..xp_cmdshell 'bcp "test..min" out d:\mintest2.txt -c -Sd02 -Usa -P'很多情况下,需要给客户更新数据库,不值得跑一趟,客户自己也不懂得如何操作,远程操作网速还跟不上...这时可以把要更新的sql语句保存成文件,写一个批处理在命令行状态下调用查询分析器来执行这个sql文件里的语句。
win10简单自动启动bat脚本(执行SQL开启Oracle数据库,运行软件等),包括定时
win10简单⾃动启动bat脚本(执⾏SQL开启Oracle数据库,运⾏软件等),包括定时每次重启电脑,我都需要使⽤ cmd 连接数据库,然后执⾏命令开启数据库,这⽆疑是对⾃动化的挑衅,所以我打算写⼀个 bat 脚本,解放双⼿。
第⼀个是执⾏sql⽂件的⼩脚本。
(1)因为开机,Oracle数据库开启需要⼀定时间,所以有 TIMEOUT /T 180 (180秒后执⾏)(2)sqlplus / as sysdba 是在cmd中登录数据库的命令,根据实际情况决定,@后⾯这⼀串是执⾏的sql⽂件的地址,echo是在控制台打印@echo offTIMEOUT /T 180echo startsqlplus / as sysdba @C:\ProgramData\Microsoft\Windows\sql\startOracle.txtecho end开启 Oracle 12c 数据库的代码,ORCLPDB是要开启的数据库名称,后⾯那两句话可能是我笔记的历史遗留问题。
alter pluggable database ORCLPDB open;alter session set container=ORCLPDB;commit;然后将程序脚本放⼊ C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp 下⾯,注意 “Start Menu” 可能显⽰的是中⽂ “开始菜单”,这样就能开机⾃启了。
第⼆个脚本是我启动 windows 上⾯的 redis 的脚本,先进⼊具体路径,然后启动 redis,类似的原理,放在上⾯的路径下⾯,就能⾃动开启了cd C:\Users\wdnxj\Documents\Tencent Files\*\FileRecv\redisredis-server redis.windows.conf。
批处理执行多个SQL文件到oracle
批处理执⾏多个SQL⽂件到oracle最近因为项⽬需要,打算写⼀个批处理程序,更新数据库中的表数据。
写了3个sql⽂件:a.sql,b.sql,c.sql,在这三个⽂件中,实现了创建表,并向表中插⼊数据的操作。
⽬前我通过SQLPLUS可以执⾏⼀个SQL⽂件,例如:sqlplus test/test@test @a.sql如何在⼀个批处理⽂件中,按顺序执⾏三个sql⽂件。
我新建了⼀个a.bat⽂件,在⽂件中填写sqlplus test/test@test @a.sql@b.sql@c.sql执⾏⽂件a.bat,只是执⾏⽂件a.sql,执⾏完⽂件a.sql,不继续执⾏后边的⽂件,如何才能顺序执⾏批处理中的多个sql⽂件中的语句呢。
于是到⽹上找找,我能遇到的问题,别⼈应该也有遇到的,所以就查到了如下:解决⽅案:在Windown环境中:⾸先把所有的sql⽂件准备好,具体每个⽂件⾥⾯的内容这⾥就不列出来了。
再准备⼀个全部执⾏的sql⽂件,我暂时叫它All.sql,内容如下:--@Y:\表\a.sql--@Y:\表\b.sql--@Y:\表\c.sql@Y:\表\receive28.sql@Y:\表\receivetcs.sql@Y:\表\receiveattachment.sql@Y:\表\ContainerLists.sql@Y:\表\DocumentAttachedInformationList.sql@Y:\表\edocrealation.sql@Y:\表\EntryContainerInformationList.sql@Y:\表\EntryIdentityInformationList.sql@Y:\表\EportLocationInformationList.sql@Y:\表\GoodsInformationList.sql@Y:\表\LogisticsLocationInformationLis.sql@Y:\表\main.sqlexit语法和平时sql语法相同,可以⽤“--”注释某些不⽤的表,最后的exit表⽰顺序执⾏完成后则推出sqlplus环境。
Oracle下命令行批量执行sql文件
Oracle下命令⾏批量执⾏sql⽂件
Oracle下命令⾏批量执⾏sql⽂件
有些场景下需要执⾏⼀批sql⽂件,sql⽂件⾮常⼤的时候,PL/SQL Developer⽆法直接执⾏,需要在sqlplus命令⾏下执⾏,⽽⼿⼯⼀个⼀个执⾏会很⿇烦。
我们可以把这些sql⽂件构造成⼀个sql⽂件,然后通过sqlplus命令⾏执⾏。
sqlplus命令⾏可以通过“@sql⽂件全路径名”执⾏sql⽂件。
第⼀步:创建总的sql⽂件
创建⼀个sql⽂件,然后在sql⽂件中以“@sql⽂件全路径名”的⽅式列出所有要执⾏的sql⽂件(使⽤两个@@可以写成相对路径名,所谓相对路径指的是相对于总sql⽂件)。
例如:创建all.sql⽂件,在all.sql⽂件中列出要执⾏的sql⽂件名。
spool log.txt
@d:\sql\1.sql
@d:\sql\2.sql
@d:\sql\3.sql
……
spool off
第⼆步:登录sqlplus命令⾏,执⾏sql⽂件
登录sqlplus后,连接数据库,使⽤“@sql⽂件全路径名”执⾏sql⽂件。
⽆需关注图中的乱码,这是因为字符集的问题。
以上内容也可以通过编写⼀个批处理程序来执⾏。
cmd 批处理 oracle sql 取得数据方法
cmd 批处理 oracle sql 取得数据方法在使用CMD批处理脚本中,我们经常需要通过Oracle SQL语句来取得数据。
本文将介绍使用CMD批处理中的Oracle SQL取得数据的方法。
1. 配置Oracle环境变量要在CMD批处理中使用Oracle SQL,首先需要配置Oracle环境变量。
打开“控制面板” -> “系统和安全” -> “系统”,点击“高级系统设置”,在弹出的窗口中点击“环境变量”按钮。
在“系统变量”中找到名为“Path”的变量,点击“编辑”按钮,在变量值的末尾加上Oracle安装路径下的“bin”目录路径,例如:“C:\oracle\product\12.2.0\client_1\bin”。
点击“确定”保存配置。
2. 创建批处理脚本文件在CMD中新建一个文本文件,并修改后缀名为“.bat”。
这个批处理脚本文件将用于执行Oracle SQL语句来取得数据。
3. 编写Oracle SQL语句在批处理脚本文件中,使用文本编辑器编写Oracle SQL语句。
例如,我们需要从表中获取所有员工的信息,可以使用如下的SQL语句:```SELECT * FROM employees;```你也可以根据实际需要编写复杂的SQL语句。
4. 运行Oracle SQL语句在批处理脚本文件中,使用以下命令来执行Oracle SQL语句并将结果存储到一个文件中:```sqlplus 用户名/密码@数据库实例 @sql脚本路径输出结果文件路径```其中,用户名为Oracle数据库的登录用户名,密码为对应的密码,数据库实例为要连接的数据库实例名,sql脚本路径为存储SQL语句的文件路径,输出结果文件路径为存储查询结果的文件路径。
例如,假设我们的用户名为“scott”,密码为“tiger”,数据库实例名为“orcl”,我们存储SQL语句的文件路径为“D:\sql脚本.sql”,输出结果的文件路径为“D:\查询结果.txt”,那么我们的批处理脚本文件内容可以如下编写:```@echo offsqlplus scott/tiger@orcl @D:\sql脚本.sql>D:\查询结果.txt```5. 执行批处理脚本保存并关闭批处理脚本文件后,双击运行该脚本。
batcmd批处理连接SqlServer数据库查询脚本
batcmd批处理连接SqlServer数据库查询脚本难得今天晚上9点前赶回家,⽽且最近草稿箱也压了不少“湿货”,就挑⼀篇发出来好了!不过在发⽂章之前先吐槽⼀下那个从昨天攻击张⼽博客到现在还在继续的⽆聊蛋疼之⼈!本来就算开启了云加速全缓存也是扛不住的,因为静态中混着动态请求,⽐如浏览计数。
还好灵机⼀动,对这些动态做了点⼩⼿脚,现在基本毫⽆压⼒了!粗略分析⼀下这个攻击博客的⼩⼈,⽆外乎是2种⼈:①、最近张⼽博客流量⼤涨,估计遭⼈妒忌或者是挡⼈财路;②、来张⼽博客换友链被拒或被忽略的⼈,怀恨在⼼。
对于①:俗话说⽆⼈妒忌是庸才,那么⽆⼈妒忌的⽹站也不能算是优秀的⽹站。
其实,你只闻到我的⾹⽔,却没看到我的汗⽔,你只看到了我的排名,却没看到我的⽤⼼。
建站⼀年多,或多或少对SEO有⼀些⾃⼰的见解。
结合张⼽博客的发展历程,我认为真正以⽤户体验、设⾝处地为⽤户着想的内容才是最好的“农家肥”,⽽不是那些短期就能看到成效的“化肥”!写⽂章时我会时刻想着⽤户是否看得懂,怎样写才能让⽤户更容易?总之,⽂章如果只是贴上你的测试过程,那这博客就真的只是印象笔记了!所以,如果你是眼红⽽攻击我,那就继续吧,不把张⼽博客打死你就是孬种。
对于②:怎么说呢,前⾯那篇⽂章已经说了张⼽博客的友链要求,但还是有不少朋友热⼼的请求交换友链。
可是你的⽹站确实还不够看,达不到我的要求,你要我怎么弄?如果都同意,那我⾸页不就变成导航了吗?如果是因为拒绝友链⽽攻击我,那么请继续,但千万别让我知道了是哪个⽹站,否则你懂的。
好了,废话说的够多的了,下⾯说正事。
前⾯也说了,我现在的新公司⼤部分服务器是Windows Server环境,前⼈都是⽤Python写的监控脚本,最近正好遇到了⼀个添加Zabbix监控项⽬的需求,我就琢磨着⽤我刚⼯作时拿⼿的bat批处理来完成这个项⽬。
不出意外,批处理果然可以胜任,不过要借助sqlserver命令⾏⼯具的帮助,代码如下:@echo oFFtitle Zabbix监控之数据库查询bat脚本::名称:Zabbix监控脚本批处理版::描述:通过osql命令⾏⼯具查询数据库,进⾏⼀些⾃定义监控::⽀持:需要osql.exe和MSVCR71.DLL⽀持,可以放到脚本同级⽬录::时间:2015-03-20:: 进⼊脚本当前⽬录cd "%~dp0"::取得参数set "Usg=%1"::判断参数if "%Usg%"=="" goto Example::初始化连接参数set host="10.172.10.80"set db="DBname"set user="DBuser"set pd="password"::根据不同的参数执⾏不同的查询代码(⾃⾏调整)if "%Usg2%"=="monitor1" (::监控1set sql="sql语句1") else if "%Usg%"=="monitor2" (::监控2set sql="sql语句2" ) else if "%Usg%"=="monitor3" (::监控3set sql="sql语句3") else if "%Usg%"=="monitor4" (::监控4set sql="sql语句4")::连接数据库并执⾏查询(此处的for是对查询到的结果做提取,所以需要按照实际情况⾃⾏搞定。
批处理(bat)开发和执行SQL语句----osql、isql、sqlcmd
批处理(bat)开发和执⾏SQL语句----osql、isql、sqlcmdSQL Server 命令⾏执⾏语句,似乎有⼏个选择⽅案:osql,isql和sqlcmd。
但是他们之间⼜有什么区别呢?这⾥我也从⽹上找了⼀些资料,⼤概如下:⼀楼推荐使⽤sqlcmd,它是功能最齐全的产品。
sqlcmd:SQL Server的最新,最狂热的命令⾏界⾯。
isql:与SQL Server进⾏命令⾏通信的较旧的DB-Library(本机SQL Server协议)⽅式。
osql:与SQL Server进⾏命令⾏通信的基于ODBC的旧⽅法。
编辑:⾃从⼏年前我回答这个问题以来,时代已经发⽣了变化。
现在,您还可以在PowerShell中使⽤invoke-sqlcmd cmdlet。
如果您习惯使⽤PowerShell或计划编写任何复杂程序的脚本,请改⽤它。
⼆楼我不确定你问题的范围是什么,但我相信:isql使⽤DB-Library与服务器通信,在SQL2000之后不再包含它osql使⽤ODBC与服务器进⾏通信,SQL2005之后将不再包含ODBCsqlcmd该实⽤⼯具使⽤ ODBC 执⾏ TRANSACT-SQL 批处理,⽬前是推荐的命令⾏⼯具。
三楼如果你有SQL SERVER 2005,最好使⽤SQLCMD⽽不是OSQL或ISQL,否则使⽤OSQL⽽不是ISQL。
微软之前宣布ISQL即将退出。
果然,ISQL不包含在SQL Server 2005 RTM中。
OSQL最终也将逐步淘汰,尽管它仍然包含在SQL Server 2005⼆进制安装中。
考虑到历史SQL Server发布周期,OSQL可能会在2010年向我们提出申请。
SQLCMD具有以下许多优点:1)表现明智2)SQLCMD⽀持参数化变量3)SQLCMD⽀持⾃定义编辑器4):XML [ONOFF]5):错误STDERRSTDOUT6):Perftrace STDERRSTDOUT7)远程专⽤管理连接(DAC)出处:如何开发SQLCMD程序呢?开发SQLCMD程序的流程是什么?根据上⾯的描述,我想你已经知道⾃⼰需要使⽤什么命令了。
如何使用BAT文件批量运行SQL语句,并保存执行结果
其中1.SQL,2.SQL是对应的SQL文件,而1.OUT,2.OUT则是对应SQL文件之后的结果文件。 虽然这样似乎有点岡,因为是一个个的命名,没有循环,但是至少是一个尝试。
如何使用 BAT文件批量运行 SQL语句,并保存执行结果
最近需要在一个新的数据库上创建一些数据,插入数据的SQL语句已经生成好了(通过EXCEL),但是由于数据比较多,如果一个个执行 的话太费时间,因此想到了利用BAT文件执行,这样就可以在下班后,让系统自己执行,同时将执行的结果保存在对应脚本的文件中。
oracle sql执行流程
oracle sql执行流程下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by theeditor. I hope that after you download them,they can help yousolve practical problems. The document can be customized andmodified after downloading,please adjust and use it according toactual needs, thank you!In addition, our shop provides you with various types ofpractical materials,such as educational essays, diaryappreciation,sentence excerpts,ancient poems,classic articles,topic composition,work summary,word parsing,copy excerpts,other materials and so on,want to know different data formats andwriting methods,please pay attention!1. 解析(Parse):当用户提交 SQL 语句时,Oracle 首先对其进行解析。
