Oracle不同数据库之间同步处理方案( 二 )

4 sql文件入库批处理通过windows系统自带的计划任务执行下面批处理实现数据入库
1)三区区数据库服务器新建表DNL_SQLJL 。
三区数据库中执行下列语句:
-- Create tablecreate table DNL_SQLJL(id VARCHAR2(25),tables VARCHAR2(25),czlx VARCHAR2(25),sqlml VARCHAR2(2000),sql VARCHAR2(2000),time DATE,bak VARCHAR2(128))tablespace MPTMSUpctfree 10initrans 1maxtrans 255storage(initial 64Knext 1Mminextents 1maxextents unlimited);-- Add comments to the columnscomment on column DNL_SQLJL.idis 'ID';comment on column DNL_SQLJL.tablesis '同步表名';comment on column DNL_SQLJL.czlxis '操作类型';comment on column DNL_SQLJL.sqlmlis 'SQL文件目录';comment on column DNL_SQLJL.sqlis 'SQL内容';comment on column DNL_SQLJL.timeis '操作时间';2)三区区数据库服务器新建计划任务定期执行DQ3QRK-ZXWJ.bat批处理 。
3)DQ3QRK-ZXWJ.bat批处理调用DQ3QRK-ZXSQL.bat来执行入库操作 。
DQ3QRK-ZXWJ.bat语句如下:
@echo offREMset Log=logDQ3QRKSQL-%date:~0,4%.%date:~5,2%.%date:~8,2%.logREMrem 第一步dir D:mptmsudataDNLTBDIR* /b /a|findstr ".sql>" >D:mptmsudataDNLTBDIRDQ3QRKWJ.TXTremcd /d %~dp0 && for /f "tokens=1-3 delims=-. " %%i in (D:mptmsudataDNLTBDIRDQ3QRKWJ.TXT) do %~dp0DQ3QRK-ZXSQL.bat %%i %%j %%k >>%Log% 2>&1pauseexitDQ3QRK-ZXSQL.bat语句如下:
@echo offREMREM set Log=logDQ3QRKSQL-%date:~0,4%.%date:~5,2%.%date:~8,2%.logset RQ=%date:~0,4%%date:~5,2%set SQLWJ=D:mptmsudataDNLTBDIR%1-%2-%3.sqlset SQLJL=D:mptmsudataDNLTBDIRsqljl.sqlREMsqlplus -s yptms/yptms@mptmsu @%SQLWJ%for /f "tokens=1 delims=;" %%i in (%SQLWJ%) do (set tmpsql=%%igoto aa):aaecho insert into DNL_SQLJL (ID,TABLES,CZLX,SQLML,SQL,TIME) values('%3','%2','%1','D:mptmsudataDNLTBDIR%RQ%%1-%2-%3.sql','%tmpsql%',SYSDATE); >%SQLJL%echo commit; >>%SQLJL%echo exit; >>%SQLJL%sqlplus -s yptms/yptms@mptmsu @D:mptmsudataDNLTBDIRsqljl.sqldel /f /q D:mptmsudataDNLTBDIRsqljl.sqlIF NOT EXIST D:mptmsudataDNLTBDIR%RQ% md D:mptmsudataDNLTBDIR%RQ%move /Y %SQLWJ% D:mptmsudataDNLTBDIR%RQ%
【Oracle不同数据库之间同步处理方案】


推荐阅读