Oracle bat批处理文件执行SQL文件

合集下载

运行.bat执行sql文件——mysql

运行.bat执行sql文件——mysql
运行test.bat 执行 test.sql文件
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语句的代码

使用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数据库,运行软件等),包括定时

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

批处理执⾏多个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⽂件
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语句来取得数据。

本文将介绍使用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数据库查询脚本

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、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语句,并保存执行结果

如何使用BAT文件批量运行SQL语句,并保存执行结果
执行代码如下所示: osql -S 111.111.11.253 -d OCS_LINKS_PRESSURE -U sa -P 111111 -i 1.sql -o 1.out osql -S 111.111.11.253 -d OCS_LINKS_PRESSURE -Uቤተ መጻሕፍቲ ባይዱsa -P 111111 -i 2.sql -o 2.out osql -S 111.111.11.253 -d OCS_LINKS_PRESSURE -U sa -P 111111 -i 3.sql -o 3.out
其中1.SQL,2.SQL是对应的SQL文件,而1.OUT,2.OUT则是对应SQL文件之后的结果文件。 虽然这样似乎有点岡,因为是一个个的命名,没有循环,但是至少是一个尝试。
如何使用 BAT文件批量运行 SQL语句,并保存执行结果
最近需要在一个新的数据库上创建一些数据,插入数据的SQL语句已经生成好了(通过EXCEL),但是由于数据比较多,如果一个个执行 的话太费时间,因此想到了利用BAT文件执行,这样就可以在下班后,让系统自己执行,同时将执行的结果保存在对应脚本的文件中。

oracle sql执行流程

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 首先对其进行解析。

使用批处理编写ORACLE设置

使用批处理编写ORACLE设置

使⽤批处理编写ORACLE设置
在搜索引擎⾥查询了这个问题,找到的⼏个答案都是创建两个⽂件,⼀个是sql⽂件,⽤来写登录数据库账户后的oracle命令,另⼀个是bat ⽂件,⽤来写sqlplus命令然后把sql⽂件传⼊。

没有找到仅⽤⼀个bat⽂件解决的办法。

直接的解决⽅法没找到,就想到了间接的⽅法。

就是在批处理中先写创建sql⽂件的命令,然后继续sqlplus调⽤,最后再把刚创建的sql⽂件给删除。

下⾯的例⼦是取消oracle账号密码⾃动定时过期的批处理(这边是先在bat同⽬录下创建了temp.sql⽂件):@echo off
echo conn sys/sys as sysdba;>>temp.sql
echo alter profile default limit password_life_time unlimited;>>temp.sql
echo exit;>>temp.sql
sqlplus /nolog @temp.sql
del temp.sql /f /s
@echo设置已完成,请按任意键退出...
pause>nul。

批处理bat文件调用oraclesql文件并传入参数

批处理bat文件调用oraclesql文件并传入参数

批处理bat文件调用oraclesql文件并传入参数在批处理(bat)文件中调用Oracle SQL文件并传递参数,可以使用以下步骤:2. 在批处理文件中,使用以下命令来连接Oracle数据库和执行SQL 文件:``````- "username"是要连接的Oracle数据库的用户名。

- "password"是用户名对应的密码。

- "host"是Oracle数据库的主机名或IP地址。

- "port"是Oracle数据库的端口号。

- "service"是Oracle数据库的服务名或SID。

- "sql_file.sql"是要执行的Oracle SQL文件的路径和文件名。

- "parameter1"、"parameter2"等是要传递给SQL文件的参数(如果有的话)。

3.将上述命令添加到批处理文件中,并根据实际情况修改用户名、密码、主机名、端口号、服务名、SQL文件路径和参数。

4.保存批处理文件。

以下是一个示例的批处理文件内容:```batsetlocalset username=my_usernameset password=my_passwordset host=my_hostset port=my_portset service=my_serviceset sql_file=C:\path\to\sql_file.sqlset parameter1=value1set parameter2=value2endlocal```请根据实际情况修改上述示例中的变量值,并确保Oracle客户端(sqlplus)已正确安装和配置。

然后,运行批处理文件即可执行Oracle SQL文件并传递参数。

oracle批处理执行sql

oracle批处理执行sql

oracle批处理执⾏sql oracle 批处理执⾏ sql bat 连接数据库语句
⾸先建⽴⼀个⽂本⽂件,⾥边写上
Sql代码
1. sqlplus scott/tiger@zlkj_kk @runSql.sql
然后保存⽂件,把⽂件扩展名改为.bat
然后再再同级⽬录下创建⼀个⽂本⽂件
在⾥边写上
Sql代码
1. --把sys和zlkj改为具有sysdba权限的⽤户名和密码(如sys⽤户)
2. conn sys/zlkj@zlkj_kk as sysdba
3.
4. --写SQL语句
5. INSERT INTO kk.hmd VALUES ('heisetoufa','love','zisetoufa');
6.
7. --提交
8. commit;
9.
10. --去掉下边注释可以执⾏完让DOS界⾯停下来
11. --PAUSE 按任意键继续......
12.
13. --退出
14. exit
⾥边注释得很清楚了,就是连接并执⾏SQL语句
然后把⽂件名改为批处理⽂件⾥调⽤的⽂件名,此处为runSql.sql
保存
这时⼀个批处理连接并执⾏SQL语句的批处理程序就创建好了
使⽤时只要双击批处理⽂件就可以执⾏了
多个SQL语句⽰例:
sql1.dml
sql2.dml
sql3.dml
顺序执⾏。

编辑sql1,再⽂件后⾯加上
如果三个⽂件在同⼀⽬录下则:
@@sql2.dml
@@sql3.dml
如果不在同⼀路径下则
@绝对路径\sql2.dml
@绝对路径\sql3.dml。

oracle执行sql脚本文件

oracle执行sql脚本文件

oracle执⾏sql脚本⽂件
在SQL_PLUS⾥⾯执⾏:
sql>@full_path/test.sql;
例:sql>@D:/test.sql;
不需要commit; ⼀般都是在test.sql ⾥⾯最后加上⼀个commit;但是需要注意的是:在test.sql⽂件⾥⾯每条语句后必须加上“;”,代表⼀条语句的执⾏。

1. 执⾏⼀个SQL脚本⽂件
SQL>start file_name
SQL>@file_name
我们可以将多条sql语句保存在⼀个⽂本⽂件中,这样当要执⾏这个⽂件中的所有的sql语句时,⽤上⾯的任⼀命令即可,这类似于dos中的批处理。

2. @与@@的区别是什么?
@等于start命令,⽤来运⾏⼀个sql脚本⽂件。

@命令调⽤当前⽬录下的,或指定全路径,或可以通过SQLPATH环境变量搜寻到的脚本⽂件。

该命令使⽤是⼀般要指定要执⾏的⽂件的全路径,否则从缺省路径(可⽤SQLPATH变量指定)下读取指定的⽂件。

@@⽤在sql脚本⽂件中,⽤来说明⽤@@执⾏的sql脚本⽂件与@@所在的⽂件在同⼀⽬录下,⽽不⽤指定要执⾏sql脚本⽂件的全路径,也不是从SQLPATH环境变量指定的路径中寻找sql脚本⽂件,该命令⼀般⽤在脚本⽂件中。

如:在c:/temp⽬录下有⽂件start.sql和nest_start.sql,start.sql脚本⽂件的内容为:
@@nest_start.sql - - 相当于@ c:/temp/nest_start.sql
则我们在sql*plus中,这样执⾏:
SQL> @ c:temp/start.sql。

bat执行SQL

bat执行SQL

bat执⾏SQL@echo offSETLOCAL ENABLEDELAYEDEXPANSIONset CURRENT=%time: =0%set CRE_TIME=%date:~0,4%/%date:~5,2%/%date:~8,2%%CURRENT:~0,2%:%CURRENT:~3,2%:%CURRENT:~6,2%.%CURRENT:~9,2%set BATCH_DATE=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%set NOW_DIR=C:\PB1PD1\UpLoadset DB_SERVICE_NAME=PBDB902V\PBDB901set DB_NAME=BD901S1set RC=0set LOG_FILE=%NOW_DIR%\UpLoadLog_SQL_%BATCH_DATE%.logset TMP1=%NOW_DIR%\TMP1.txtset TMP2=%NOW_DIR%\TMP2.txtset TMP3=%NOW_DIR%\TMP3.txtrem カレントdir=本機能のWKdircd %NOW_DIR%DIR %NOW_DIR%\*_Table.sql /B > %TMP1%if errorlevel 1 (echo "● テーブルのチェックサムファイルがありません。

" >> %LOG_FILE% 2>&1)DIR %NOW_DIR%\*_Procedure.sql /B > %TMP2%if errorlevel 1 (echo "● プロシージャのチェックサムファイルがありません。

" >> %LOG_FILE% 2>&1 )DIR %NOW_DIR%\*_Job.sql /B > %TMP3%if errorlevel 1 (echo "● ジョブのチェックサムファイルがありません。

oracle批处理文件

oracle批处理文件

简单的oracle备份恢复批处理文件建议一:利用任务计划、批处理文件和ORACLE的EXP导出功能,可以根据日期自动生成ORACLE备份文件,大大方便了ORACLE数据备份。

:1、建立批处理文件backup.bat\.exp system/manager file=d:\backup\oracle\oracle%date:~0,10%.dmp owner=system log=d:\backup\oracle\oracle%date:~0,10%.log将生成oracle2006-01-09.dmp文件exp system/manager file=d:\backup\oracle\oracle%date:~11,3%.dmp owner=system log=d:\backup\oracle\oracle%date:~11,3%.log将生成oracle星期一.dmp文件,则每周循环保留一个备份文件,共7个备份文件循环2、添加一个任务计划利用任务计划向导,根据备份策略设置自动执行任务的时间频率(例如每天零时),执行d:\oracle\backup.bat3、以后每天将在目录中生成形如“oracle2005-08-31.dmp和oracle2005-08-31.log”的备份和日志文件。

说明:1、%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。

请先在命令行中测试 echo %date% 的返回值。

%date:~4,10% 是返回日期函数,~后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。

2、如需要准确的时间做为文件名,请用%time%函数,参数同上。

建议二:@echo offset filename=e:\data_bak\%date:~8,2%日exp userid=user/pass@esdata file=%filename%.dmp owner=user INDEXES=y grants=y constraints=y compress=y log=%filename%.lograr a %filename%.rar %filename%.*del %filename%.dmpdel %filename%.log放计划任务里面定时执行,文件名以日期的day部分来命名备份后调用rar进行压缩这样可以保存一个月的历史数据注意:需要把program files/winrar目录下的rar.exe拷贝到系统system32目录下如果是以星期命名,则需要将set filename=e:\data_bak\%date:~8,2%日修改为set filename=e:\data_bak\%date:~0,3%建议三:以下为ORACLE 自动备份批处理文件内容,请配合任务计划实现@ECHO OFFSET BACKPATH=d:\ECHO 准备备份数据库REM 7天一个循环IF EXIST %BACKPATH%\ONE GOTO ONEIF EXIST %BACKPATH%\TWO GOTO TWOIF EXIST %BACKPATH%\THREE GOTO THREEIF EXIST %BACKPATH%\FOUR GOTO FOURIF EXIST %BACKPATH%\FIVE GOTO FIVEIF EXIST %BACKPATH%\SIX GOTO SIXIF EXIST %BACKPATH%\SEVEN GOTO SEVEN ECHO E > %BACKPATH%\ONE:ONESET BACKPATH_FULL=%BACKPATH%\ONEREN %BACKPATH%\ONE TWOGOTO BACK:TWOSET BACKPATH_FULL=%BACKPATH%\TWOREN %BACKPATH%\TWO THREEGOTO BACK:THREESET BACKPATH_FULL=%BACKPATH%\THREEREN %BACKPATH%\THREE FOURGOTO BACK:FOURSET BACKPATH_FULL=%BACKPATH%\FOURREN %BACKPATH%\FOUR FIVEGOTO BACK:FIVESET BACKPATH_FULL=%BACKPATH%\FIVEREN %BACKPATH%\FIVE SIXGOTO BACK:SIXSET BACKPATH_FULL=%BACKPATH%\SIXREN %BACKPATH%\SIX SEVENGOTO BACK:SEVENSET BACKPATH_FULL=%BACKPATH%\SEVENREN %BACKPATH%\SEVEN ONEGOTO BACK:BACKEXP TESTUSER/TEST FILE=%BACKPATH_FULL%.DMPSET BACKPATH=SET BACKPATH_FULL=EXIT建议四:RMAN TARGET=RMAN/RMAN@ORCL < C:\RMAN.TXT建议五:在文本里编辑cmd命令。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

现实的项目中经常可能会出现需要用批处理文件来执行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;。

相关文档
最新文档