当前位置:首页 » 编程语言 » oracle同步到sqlserver
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

oracle同步到sqlserver

发布时间: 2022-07-07 15:20:14

❶ 如何将Oracle数据库中的一张表导入到sqlServer中

看你上面说的方法应该是用ODBC,数据源是指你配置的oracle访问名,首先你要安装有oracle客户端(如果你是在安装了
oracle数据库
的机器上操作就不需要再安装oracle客户端了),然后用Net
Configuration
Assistant
配置好你要访问的oracle数据库的访问名。该访问名就是上面你要填的数据源。你可以到oracle安装目录下,找到tnsnames.ora文件,里面记录了你配置的oracle数据库访问名。比如我的数据库是10G的,该文件在目录D:\oracle\proct\10.2.0\db_1\NETWORK\ADMIN
\tnsnames.ora
里面你可以找到类似这样的东西
你配的访问名
=
(
DESCRIPTION
=
(ADDRESS
=
(PROTOCOL
=
TCP)(HOST
=
数据库的IP地址或机器名)(PORT
=
1521))
(CONNECT_DATA
=
(SERVER
=
DEDICATED)
(SERVICE_NAME
=
数据库的SID)
)
)

❷ oracle怎样导入sqlserver数据

使用sqlserver自带的DTS(导出)工具就可以实现,数据源选择sqlserver,目的选择ORACLE使用的驱动(我用的是9i,是oracle
in
orahome92
),选择或创建一个DSN,输入用户名和密码就可以了,使用时需要注意表名和字段名上带的双引号需要去掉,否则的话你在查表的时候在表名上也需要加上双引号。

❸ oracle数据库导入到sqlserver

先是把要过来的oracle备份的.dmp文件处理好,要来EXP导出时候的用户名和密码,以及LOG日志文件。
其次安装oracle数据环境,和我的SQL数据库在一个机器上,呵呵,这样好办多了。要的数据库是ORACLE9i版本的,10G也没问题。
先建立一个用户名,名称最好和提供DMP备份的名称一样,密码也一样。这样会省很多事的。开始WINDOWS下运行CMD:
C:>imp username/userpassword@dbname file=d:/backname.dmp ignore=y rows=y full=y
开始执行oracle数据导入操作。时间很长,那么*.DMP数据库就被恢复过来了。
现在我们我们已经把ORACLE的备份数据恢复过来了。ORACLE里面有我们需要的数据了,我们如何把这些数据导入到SQL server里呢。这时候就要用到SQL的工具DTS..........
打开企业管理器,在oracle数据导入的数据库出按下右键,所有任务里选择导入数据选择数据 ,进入数据转换导入导出向导。
下一步我们选择数据源为Microsoft OLE Provider for oracle 选择属性 因为是本机所以服务器名称不比输入了,用户名我们输入ORACLE我们需要的数据库的用户名和密码。测试一下连接,正常连接以后选择确定,就可以选择(勾选)我们需要的这个数据库里的表了。
这样,oracle中的表就导入到SQL里面了。我们就可以用SQL来操作数据了。这对于编程具有很好的试用价值。

❹ 如何将oracle表数据实时同步到sqlsever数据表中

1. SQLSERVER服务器上面安装oracle客户端,配置服务命名(假设为 test)
2. 在SQLSERVER服务器上面建立链接服务器,脚本如下

SQL code?
SQL code-- Adding linked server:

exec sp_addlinkedserver @server = 'test' ,
@srvproct = 'ORACLE',
@provider = 'MSDAORA',
@datasrc = 'test'
-- Adding linked server login:
exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test',
@rmtuser = 'user', --数据库用户
@rmtpassword = 'password' --密码
3. 建立一个作业,通过作业调度存储过程,存储过程使用类似的语句将oracle的数据插入到sqlserver表中

SQL code?
insert into sqlserver表 select * from test..oracle表名
4. 如果要球ORACLE数据是实时增加的,并且ORACLE记录上有递增的字段,可以在SQLSERVER上面建立一个表记录上次插入的id,然后下次可以从上次的ID+1开始继续插入

SQL code?
insert into sqlserver表 select * from test..oracle表名 where id>@id
5. 防止sqlserver同步的时候oracle仍在不断的插入,每次要取一个结束ID

SQL code?
select @endid=max(id) from test..oracle表名.

❺ 如何定时同步oracle表到sql server

1、两台不同服务器;
2、从oracle10g定时同步(每天凌晨2:00)到sqlserver2005;
3、处于安全性考虑,客服方不提供sqlserver2005的账户密码,只需我们提供数据集;
4、双方程序语言都为java;
在这些前提下我提出了几套方案,仅供参考:
a:如果oracle能在客户服务器上访问,由oracle方提供接口给客户服务器实现,返回给客户服务器所需同步数据,并由客户服务器操作数据存储到sqlserver2005中,接口代码描述:远程建立jdbc连接oracle(临时帐户),查询oracle方提供的视图,并访问客户所需数据集,打成jar包,由客户方调用接口实现方法获得数据。
b:如果oracle方不能被客户服务器访问,则将需同步数据置入xml中,并由客服服务器方访问其xml(http or socket),并有oracle方提供解析机制,返回数据集。
c:通过开源数据库同步软件实现不同(google结果:symmetricds、opendbdiff(针对sqlserver))
前面三种方案均可实现从oracle同步到sqlserver2005,不过如果数据量较大时可能导致中途数据丢失或者同步速度较慢等情况,于是制定如下方案:
建立同步表,将客户方所需数据表中字段放入到同步表中,如:
用户表:wid,userid,password
用户同步表:wid,userid,password,no,operationtype,operationdate
可以看到同步表中多了三个字段:no,operationtype,operationdate
no为序号,由oracle序列生成,operationtype为操作类型,0为新增,1为修改,2为删除,operationdate为操作日期,取当前完整时间(年月日分秒)
建立用户表触发器,如果用户表有操作则将客户方所需用户表字段放入同步表中,如果新增将operationtype的值插入0,以此类推
在客服服务器方,oracle方提供接口查询同步表得到结果集,并和客服商议如何操作这些数据
这样就可以实现哪些数据修改过就同步哪些数据,减免了双方服务器的压力

❻ 如何将oracle数据库中的数据如何导入到sqlserver

-用DTS移植数据

--数据转换服务(Data Transformation Services,简称DTS),它可以在任意数据源之间移动数据,并在移动过程中对数据进行清洗
--DTS通常用于将数据移动到SQL Server,但实际上它可以方便地在几乎所有的数据源之间移动数据

--注意:“复制数据库向导”和“导入/导出向导”实际只是创建和执行了DTS包

--DTS设计器
--“数据转换服务”->“本地包”->新建或打开包
--“连接”:可用的连接对象
--“任务”:包含了19个关键的数据转换任务,其中最常见的是“转换数据任务”和“执行SQL任务”
--“包属性”:在DTS的设计器中选择“包”->“属性”或右键“包属性”,可以打开包属性对话框

--添加“连接”

--添加“任务”
--1、源:源可以是源连接中的一个表、视图,或者一个SQL查询
--2、目的:接收数据的表
--3、转换:对源数据列和目的数据列进行匹配或者连接。一个列转换可以是下列情形之一:
--复制列是转换中最常见的情况
--日期时间字符串、小写字符串、字串、裁剪字符串和大写串的处理全都与复制列转换类似,不同的是
--它们中的每一个都增加了某种类型的数据转换功能
--读文件和写文件分别用于将数据导入或者导出到源列中所指定的文件
--对于包含有逻辑或者数据查找的复杂转换,需要使用ActiveX脚本实现
--4、查找:仅仅把数据从一个表移动到另外一个表是一项很简单的任务。但在很多情况下我们都必须在转换的过程中对数据进行修改
--转换任务可以调用查找脚本找出需要的值来替换源数据集中的值
--a、定义一个查找,“名称”:需要替换的源数据中的列名;“连接”:目的驱动;“高速缓存”:设置DTS执行时可以缓存的查询结果数量
--b、“查询”:可以打开查询设计器的一个变种,通过它可以为任意的连接定义有效的查询。该查询应当以源列表中的值为输入(参数),
--并返回相应的替代它的值以便插入目的表。输入的参数用‘?’来表示,而select语句所返回的值就是用于在目的表中替代输入参数的值
--下面的例子从源列中读出顾客类型的名字,并用查询所返回的CustomerTypeID来替代它
select customertypeid from customertype where (name = ?)
--为什么要这样做呢?源表中的customertype列为字符,而目的表中的customertypeid为整型,所以需要根据源表中的customertype(字符)
--从表customertype中得到相应的customertypeid以便插入到目的表的customertypeid(整数)中
--c、Active转换?
/*'**********************************************************************
' Visual Basic Transformation Script
'************************************************************************

' Copy each source column to the destination column
Function Main()
DTSDestination("CustomerTypeID") = DTSLookups("CustomerType").Execute(DTSSource("CustomerType"))
Main = DTSTransformStat_OK
End Function
*/
--5、转换选项:

--工作流控制
--DTS只包含几个任务的情况在实际中是很少见的。绝大多数DTS包都要执行数十个任务,而这些任务之间又具有错综复杂的关系。因此,执行
--顺序对于防止错误的发生至关重要。
--DTS通过以下选项来控制工作流的执行顺序:完成时(蓝色);成功时(绿色);失败时(红色)
--如:添加任务“执行SQL任务”(用来执行SQL语句),以在执行其他任务之前删除表中的数据。则此任务为第一个执行。选中此任务和第二个
--任务,然后从“工作流”中选择需要工作流类型(如完成),就可以设定这两个任务之间的执行顺序。执行好之后作用:先执行第一个任务,
--完成后,再执行第二个任务。。
--如果要为转换数据任务设置工作流,可以选择该转换任务的源连接,右键->“工作流属性”->设置工作流

--执行DTS包

--存储和移动DTS包
--1、“包”->“保存”:保存到本地服务器上。展开企业管理器控制台树的“数据转换服务”->“本地包”,将会看到那些保存的包
--2、“包”->“另存为”:提供了其他几种可选的存储格式和选项
--SQL Server:这种方法将包保存在任何已注册的SQL Server的MSDB数据库的sysdtspackages表中。如果已经注册了相应的服务器,
--这将是最简单的把包移动到另外一个SQL Server上的办法。如果要把包移动到还没有注册的服务器上,应使用“结构花存储文件”选项
--Meta Data Services:这种高级的方法可以跟踪已经为DTS修改的数据
--结构化存储文件:这种方法能够创建可以复制到另外一个SQL Server,并且可以在另外一台服务器上打开的文件。一定要注意SQL Server
--和service pack的版本号,因为具有不同的service pack级别的SQL Server 2000实例所使用的结构化存储文件有可能是不兼容的
--要打开用结构化存储文件格式保存的包,可以在企业管理器控制台树的数据转服务节点的快捷方式菜单中选择“打开包”菜单命令
--Visual Basic文件:这个选项可以生成与SQL Server DTS包完成同样任务的VB脚本
--注意:如果已经使用“包”->“另存为”命令保存了包,“包”->“保存”命令将用上一个“另存为”命令所选择的位置和格式来保存这个包

--增量和版本
--数据转换服务还有一个很好的特性:它能够对包的变化进行管理。包的每次保存都会产生该包的一个新版本,最终就会形成该包的多个连续的版本
--如果要查看任意包所保存的各个版本,可以在企业管理器中,从本地包清单中选择一个DTS包,然后选择“操作”->“版本”菜单命令,或者从
--该包的快捷方式菜单中选择“版本”菜单。此时将会打开“DTS包版本”对话框,并显示该包的各个版本的日期和描述
--使用“DTS包版本”对话框,可以打开以前的版本进行编辑或者对它们进行清理。如果想恢复到某个以前的版本,可以打开该版本进行编辑,然后】
--使用“包”->“另存为”菜单命令以一个新名字保存该包

❼ 怎么样将oracle数据库的部分表和数据迁移到sqlserver数据库上

1、要重新代码;
2、可以在“服务器对象”-“链接服务器”中增加oracle数据库链接,和oracle的dblink类似。

❽ sqlserver数据库与oracle数据库实现数据同步

能实现,
sqlserver 到oracle可以用触发器实现,前提是你需要先在sql server上创建到oracle的连接。
之后oracle 到外网你可用通过程序或别的方法实现。