Oracle+SQL Server联合查询
V1.1
目录
-
Oracle数据备份
执行oracle服务器备份批处理文件"oracle备份.bat"。
备份完成后将dmp文件拷贝到本地。
-
删除本地Oracle用户数据
打开PL/SQL登录需要删除的用户,点击工具菜单下面的导出用户对象。
选中所以表格及要删除的信息,右键删除即可。
-
导入数据到本地Oracle
导入命令:imp system/oracle@172.16.2.3/pcr file=C:\Users\lenovo\Desktop\tmp\park-2017-12-26-09-server\park-2017-12-26-09-server.dmp fromuser=park touser=parkserver ignore=y log=d:\log.log
导入命令需要先安装Oracle客户端软件。
-
SQL Server数据备份及还原
此处省略SQL Server数据的备份及还原,百度搜索即可。
-
SQL Server添加Oracle连接
打开SQL Server连接到指定数据库;
新建链接服务器
添加Oracle访问用户
-
联合查询举例
select * from (SELECT * FROM OPENQUERY(ORACLE_LINK,'SELECT * FROM car_info i')) h where h.park_id='2c90d5eb607709240160773fd6b00466' and h.id not in (select h.id from PA_tboCar g ,(SELECT * FROM OPENQUERY(ORACLE_LINK,'SELECT * FROM car_info i')) h where g.SeqNO=h.local_id and h.park_id='2c90d5eb607709240160773fd6b00466');
主要是通过OPENQUERY进行Oracle数据库的联合查询。
附件:Oracle备份脚本
@echo off
echo ---------------------数据导出开始---------------------------------
REM ###########################################################
REM # Windows Server 2008下Oracle数据库自动备份批处理脚本
REM ###########################################################
REM 取当前系统时间,可能因操作系统不同而取值不一样
set CURDATE=%date:~0,4%-%date:~5,2%-%date:~8,2%
set CURTIME=%time:~0,2%
echo %CURTIME%
REM 小时数如果小于10,则在前面补0
if "%CURTIME%"==" 0" set CURTIME=00
if "%CURTIME%"==" 1" set CURTIME=01
if "%CURTIME%"==" 2" set CURTIME=02
if "%CURTIME%"==" 3" set CURTIME=03
if "%CURTIME%"==" 4" set CURTIME=04
if "%CURTIME%"==" 5" set CURTIME=05
if "%CURTIME%"==" 6" set CURTIME=06
if "%CURTIME%"==" 7" set CURTIME=07
if "%CURTIME%"==" 8" set CURTIME=08
if "%CURTIME%"==" 9" set CURTIME=09
REM set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%
REM 设置所有者、用户名和密码
set OWNER=park
set USER= system
set PASSWORD=yyhOracle
set SERVERNAME=localhost/pcr
set SERVERIP=server
REM 创建备份用目录,目录结构为backup/YYYYMMDD/
if not exist "backup" mkdir backup
if not exist "backup\%CURDATE%\" mkdir backup\%CURDATE%\
set CURDIR=backup\%CURDATE%
set FILENAME=%CURDIR%\%OWNER%-%CURDATE%-%CURTIME%-%SERVERIP%.dmp
set EXPLOG=%CURDIR%\%OWNER%-%CURDATE%-%CURTIME%-log.log
REM 调用ORACLE的exp命令导出用户数据
echo exp %USER%/%PASSWORD%@%SERVERNAME% file=%FILENAME% log=%EXPLOG% owner=%OWNER%
exp %USER%/%PASSWORD%@%SERVERNAME% file=%FILENAME% log=%EXPLOG% owner=%OWNER%
echo -------导出文件:%FILENAME%
echo -------导出日志:%EXPLOG%
echo ---------------------数据导出结束---------------------------------
pause