首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

批处理自动操作数据库

本文主要介绍Windows系统中使用批处理BAT脚本对以下4种常见数据库进行自动操作的方法:

MySQL

Oracle

DB2

Microsoft SQL Server

具体实现非常简单,总共就两步:

把需要在数据库里面执行的SQL语句写入一个文本文件

调用数据库客户端命令行工具连接数据库并执行SQL语句

各个数据库对应的客户端命令行工具名称如下:

【1】MySQL

@echooff

REM 数据库用户名

setDB_User=Batcher

REM 数据库密码

setDB_Pass=Pass2018

REM 数据库服务器IP地址

setDB_IP=172.16.0.103

REM 数据库端口号

setDB_Port=3306

REM 保存SQL语句的临时文件

setFile_SQL="C:\test.sql"

REM 保存代码执行结果的输出文件

setFile_Result="C:\test.csv"

REM 根据业务需求把实际需要执行的SQL语句输出到一个临时文件

>%File_SQL%echoselect now();

>>%File_SQL%echoselect Host,User from mysql.user;

>>%File_SQL%echoexit

REM 连接数据库执行操作并把结果输出到文件

mysql.exe-u%DB_User%-p%DB_Pass%-h%DB_IP%-P%DB_Port%%File_Result%

【2】Oracle

@echooff

REM 数据库用户名

setDB_User=Batcher

REM 数据库密码

setDB_Pass=Pass2018

REM 数据库服务器IP地址

setDB_IP=172.16.0.103

REM 数据库端口号

setDB_Port=1521

REM 数据库实例

setDB_SID=ORCL

REM 保存SQL语句的临时文件

setFile_SQL="C:\test.sql"

REM 保存代码执行结果的输出文件

setFile_Result="C:\test.csv"

REM 根据业务需求把实际需要执行的SQL语句输出到一个临时文件

>%File_SQL%echoset linesize 200

>>%File_SQL%echocol MEMBER format a50

>>%File_SQL%echoSELECT * FROM V$LOGFILE;

>>%File_SQL%echoexit

REM 连接数据库执行操作并把结果输出到文件

sqlplus.exe%DB_User%/%DB_Pass%@%DB_IP%:%DB_Port%/%DB_SID%@%File_SQL%>%File_Result%

【3】DB2

@echooff

REM 查询DB2数据库并把结果上传到FTP

setDatabaseName=SAMPLE

setTableName=SALES

setColumnName=SALES

setdb2File=%temp%\TempDB2.bat

setdb2Output=%temp%\TempOutput.txt

>"%db2File%"(

echodb2 connect to%DatabaseName%

echodb2selectmax^(%ColumnName%^)from%TableName%

echodb2 disconnect%DatabaseName%

echodb2 quit

)

echoPlease waitforminutes ...

db2cmd-c-i-w"%db2File%">"%db2Output%"

for/f"usebackq skip=10"%%a in("%db2Output%")do(

setMaxData=%%a

goto:AutoFTP

)

:AutoFTP

REM 指定FTP用户名

setftpUser=USERNAME

REM 指定FTP密码

setftpPass=PASSWORD

REM 指定FTP服务器地址

setftpIP=192.168.0.2

REM 指定待下载的文件位于FTP服务器的哪个目录

setftpFolder=/SharedFile/Log

REM 指定从FTP下载下来的文件存放到本机哪个目录

setLocalFolder=C:\temp

setftpFile=%temp%\TempFTP.txt

>"%ftpFile%"(

echo/%ftpUser%

echo/%ftpPass%

echo cd"%ftpFolder%"

echolcd"%LocalFolder%"

echobin

echoget%MaxData%.txt

echobye

)

startftp-v-i-s:"%ftpFile%"%ftpIP%

goto:eof

【4】Microsoft SQL Server

@echooff

set"OSQL=C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exe"

>"C:\test.sql"echoselectcount(*)from sys.tables;

>>"C:\test.sql"echoselecttop10*from information_schema.tables WHERE table_type='base table';

"%OSQL%"-S"服务器名"-U"用户名"-P"密码"-d"数据库名"-i"C:\test.sql">"C:\test.txt"

特别提醒:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181130G1QZCX00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券