半瓶内容

 results 1 - 1 of about 1 for Windows下执行bat脚本用EXP导出Oracle数据库. (0.340 seconds) 

Windows下执行bat脚本用EXP导出Oracle数据库

在Windows环境下,可以通过定时任务执行bat脚本来做一些事情,这里实现了一个EXP导出Oracle数据库的功能。

主要内容是根据当天的日期自动命名生成的dmp文件,同时把内容输出重定向到一个文本文件,记录开始和结束的具体时间。功能上没有什么复杂的,我实现的办法可能比较土,应该有更优的办法,exp_oracle.bat脚本内容如下:

@echo off
set year=%date:~0,4%
set month=%date:~5,2%
set day=%date:~8,2%
set mydate=%year%%month%%day%
set hhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
if "%hhmmss:~0,1%"==" " set hhmmss=0%time:~1,1%%time:~3,2%%time:~6,2%

echo ------------------------------------------------ >> e:\x.txt
echo %mydate%_%hhmmss% >> e:\x.txt
echo ------------------------------------------------ >> e:\x.txt
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
D:\oracle\product\10.2.0\db_1\BIN\exp banping/******@oracledb file=E:\dmp\bak%mydate%.dmp owner=banping BUFFER=512000000 2>e:\y.txt
echo ------------------------------------------------ >> e:\z.txt
set endyear=%date:~0,4%
set endmonth=%date:~5,2%
set endday=%date:~8,2%
set enddate=%endyear%%endmonth%%endday%
set endhhmmss=%time:~0,2%%time:~3,2%%time:~6,2%
if "%endhhmmss:~0,1%"==" " set endhhmmss=0%time:~1,1%%time:~3,2%%time:~6,2%
echo %enddate%_%endhhmmss% >> e:\z.txt
echo ------------------------------------------------ >> e:\z.txt
copy /b e:\x.txt+e:\y.txt+e:\z.txt e:\log.txt
del e:\x.txt
del e:\y.txt
del e:\z.txt

然后在windows的定时任务里加入执行这个脚本的计划就行了,执行的时间和条件等可根据需要自行指定。

运行之后,可以通过e:\log.txt文件查看到执行的过程:

------------------------------------------------
20090605_145510
------------------------------------------------

Export: Release 10.2.0.3.0 - Production on Fri Jun 5 14:55:10 2009

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

About to export specified tables via Conventional Path ...
. . exporting table TDATA 1050 rows exported
......
Export terminated successfully without warnings.
------------------------------------------------
20090605_152642
------------------------------------------------

如果需要,接下来可以看看怎么用脚本把这个文本自动发mail出来。貌似windows不像linux配备了sendmail等发送邮件的工具,所以需要在windows上选择一种smtp服务器,比如Java开源项目James就可以,或许有其他更简单的办法。


Leave a Comment