如何将SQLServer2005中的数据同步到Oracle中

有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统 来读取这些数据。不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。假设我们 这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个 MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。

1.在Oracle中建立对应的contract和 contract_project表,需要同步哪些字段我们就建那些字段到 Oracle表中。

这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关 系拉?我们可以在SQLServer下运行:

SELECT *
FROM msdb.dbo.MSdatatype_mappings
SELECT *
FROM msdb.dbo.sysdatatypemappings

来查看SQLServer和其他数据库系统的数据类型对应关系。第一个SQL语句是看SQL转Oracle的类型对应 ,而第二个表则更详细得显示了各个数据库系统的类型对应。根据第一个表和我们的SQLServer中的字段 类型我们就可以建立好Oracle表了。

SQLServer和Oracle的对应

  ORACLE  bigint  NUMBER  19  3  1
  ORACLE  binary  BLOB  NULL  0  1
  ORACLE  binary  RAW  -1  4  1
  ORACLE  bit  NUMBER  1  3  1
  ORACLE  char  CHAR  -1  4  1
  ORACLE  char  CLOB  NULL  0  1
  ORACLE  char  VARCHAR2  -1  4  1
  ORACLE  datetime  DATE  NULL  0  1
  ORACLE  decimal  NUMBER  -1  3  1
  ORACLE  doubleprecision  FLOAT  NULL  0  1
  ORACLE  float  FLOAT  NULL  0  1
  ORACLE  image  BLOB  NULL  0  1
  ORACLE  int  NUMBER  10  3  1
  ORACLE  money  NUMBER  19  3  1
  ORACLE  nchar  NCHAR  -1  4  1
  ORACLE  nchar  NCLOB  NULL  0  1
  ORACLE  ntext  NCLOB  NULL  0  1
  ORACLE  numeric  NUMBER  -1  3  1
  ORACLE  nvarchar  NCLOB  NULL  0  1
  ORACLE  nvarchar  NVARCHAR2  -1  4  1
  ORACLE  nvarchar(max)  NCLOB  NULL  0  1
  ORACLE  real  REAL  NULL  0  1
  ORACLE  smalldatetime  DATE  NULL  0  1
  ORACLE  smallint  NUMBER  5  3  1
  ORACLE  smallmoney  NUMBER  10  3  1
  ORACLE  sysname  NVARCHAR2  128  4  1
  ORACLE  text  CLOB  NULL  0  1
  ORACLE  timestamp  RAW  8  4  1
  ORACLE  tinyint  NUMBER  3  3  1
  ORACLE  uniqueidentifier  CHAR  38  4  1
  ORACLE  varbinary  BLOB  NULL  0  1
  ORACLE  varbinary  RAW  -1  4  1
  ORACLE  varbinary(max)  BLOB  NULL  0  1
  ORACLE  varchar  CLOB  NULL  0  1
  ORACLE  varchar  VARCHAR2  -1  4  1
  ORACLE  varchar(max)  CLOB  NULL  0  1
  ORACLE  xml  NCLOB  NULL  0  1
  ORACLE  bigint  NUMBER  19  3  1
  ORACLE  binary  BLOB  NULL  0  1
  ORACLE  binary  RAW  -1  4  1
  ORACLE  bit  NUMBER  1  3  1
  ORACLE  char  CHAR  -1  4  1
  ORACLE  char  CLOB  NULL  0  1
  ORACLE  char  VARCHAR2  -1  4  1
  ORACLE  datetime  DATE  NULL  0  1
  ORACLE  decimal  NUMBER  -1  3  1
  ORACLE  doubleprecision  FLOAT  NULL  0  1
  ORACLE  float  FLOAT  NULL  0  1
  ORACLE  image  BLOB  NULL  0  1
  ORACLE  int  NUMBER  10  3  1
  ORACLE  money  NUMBER  19  3  1
  ORACLE  nchar  CHAR  -1  4  1
  ORACLE  nchar  CLOB  NULL  0  1
  ORACLE  ntext  CLOB  NULL  0  1
  ORACLE  numeric  NUMBER  -1  3  1
  ORACLE  nvarchar  CLOB  NULL  0  1
  ORACLE  nvarchar  VARCHAR2  -1  4  1
  ORACLE  nvarchar(max)  CLOB  NULL  0  1
  ORACLE  real  REAL  NULL  0  1
  ORACLE  smalldatetime  DATE  NULL  0  1
  ORACLE  smallint  NUMBER  5  3  1
  ORACLE  smallmoney  NUMBER  10  3  1
  ORACLE  sysname  VARCHAR2  128  4  1
  ORACLE  text  CLOB  NULL  0  1
  ORACLE  timestamp  RAW  8  4  1
  ORACLE  tinyint  NUMBER  3  3  1
  ORACLE  uniqueidentifier  CHAR  38  4  1
  ORACLE  varbinary  BLOB  NULL  0  1
  ORACLE  varbinary  RAW  -1  4  1
  ORACLE  varbinary(max)  BLOB  NULL  0  1
  ORACLE  varchar  CLOB  NULL  0  1
  ORACLE  varchar  VARCHAR2  -1  4  1
  ORACLE  varchar(max)  CLOB  NULL  0  1
  ORACLE  xml  CLOB  NULL  0  1
  ORACLE  bigint  NUMBER  19  3  1
  ORACLE  binary  BLOB  NULL  0  1
  ORACLE  binary  RAW  -1  4  1
  ORACLE  bit  NUMBER  1  3  1
  ORACLE  char  CHAR  -1  4  1
  ORACLE  char  CLOB  NULL  0  1
  ORACLE  char  VARCHAR2  -1  4  1
  ORACLE  datetime  DATE  NULL  0  1
  ORACLE  decimal  NUMBER  -1  3  1
  ORACLE  doubleprecision  FLOAT  NULL  0  1
  ORACLE  float  FLOAT  NULL  0  1
  ORACLE  image  BLOB  NULL  0  1
  ORACLE  int  NUMBER  10  3  1
  ORACLE  money  NUMBER  19  3  1
  ORACLE  nchar  NCHAR  -1  4  1
  ORACLE  nchar  NCLOB  NULL  0  1
  ORACLE  ntext  NCLOB  NULL  0  1
  ORACLE  numeric  NUMBER  -1  3  1
  ORACLE  nvarchar  NCLOB  NULL  0  1
  ORACLE  nvarchar  NVARCHAR2  -1  4  1
  ORACLE  nvarchar(max)  NCLOB  NULL  0  1
  ORACLE  real  REAL  NULL  0  1
  ORACLE  smalldatetime  DATE  NULL  0  1
  ORACLE  smallint  NUMBER  5  3  1
  ORACLE  smallmoney  NUMBER  10  3  1
  ORACLE  sysname  NVARCHAR2  128  4  1
  ORACLE  text  CLOB  NULL  0  1
  ORACLE  timestamp  RAW  8  4  1
  ORACLE  tinyint  NUMBER  3  3  1
  ORACLE  uniqueidentifier  CHAR  38  4  1
  ORACLE  varbinary  BLOB  NULL  0  1
  ORACLE  varbinary  RAW  -1  4  1
  ORACLE  varbinary(max)  BLOB  NULL  0  1
  ORACLE  varchar  CLOB  NULL  0  1
  ORACLE  varchar  VARCHAR2  -1  4  1
  ORACLE  varchar(max)  CLOB  NULL  0  1
  ORACLE  xml  NCLOB  NULL  0  1

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sqlserver
, oracle
, 1
, oracle数据库
, oracle 数据库
, null
, oracle 大数据
, number
, openmeetings oracle
, 数据库 oracle
, oracl
, oracle 数据库...
, clob
, nvarchar2
nvarchar
sqlserver同步oracle、sql server同步oracle、sql server 2005 同步、oracle转sql server、sql server oracle,以便于您获取更多的相关知识。

时间: 2024-10-26 15:07:22

如何将SQLServer2005中的数据同步到Oracle中的相关文章

通过vb.net开发的web将一个excel文件中的数据导入到oracle中 出错

问题描述 通过vb.net开发的web将一个excel文件中的数据导入到oracle中又什么别的比较好的办法吗?我试过了:先用FileUpload.SaveAs方法将文件保存在服务器的一个文件夹下在用OleDbDataAdapter.Fill方法将excel读入到dataset最后循环dataset将数据写入oracle出现了在我本地机器上好用,但是在上传到服务器上后能够保存,但是用oledb访问不了,OleDbConnection一open就出现未定义的错误2147467259 解决方案 解决

如何为goldengate的数据库中保证数据同步的情况下为表加列

问题描述 如何为goldengate的数据库中保证数据同步的情况下为表加列 数据库现在做GOLDENGATE,DML同步了部分表,现在在source端,需要同步的表中加一列,在target表中也加一列,该如何操作才能保证加列的过程中数据同步且不丢失

MySQL级联复制中的数据同步(第二篇)

今天解决了两个蛮有意思的MySQL问题,简单分享出来. 首先是昨天说的级联复制的情况,因为架构做了调整,我们要删除其中的一个中继节点(新加坡节点),而直接使用北京节点去连接北美的节点. 更多的信息可以参考. MySQL级联复制中的数据同步(r11笔记第20天) 大体的架构方式如下: 如此一来,为了避免重建从库,而且没有GTID的情况下,我们可以统一规划一下偏移量,平滑迁移. 实现后的架构图如下: 看起来还是比较简单,但是偏移量真是一个比较琐碎细致的活儿.在此也感谢我的同事程振,我们一起讨论了实现

sqlite-如何将导入到数据库表中的数据保存在程序中,而不用每次换调试机时还得重新导入数据

问题描述 如何将导入到数据库表中的数据保存在程序中,而不用每次换调试机时还得重新导入数据 如题:我有一张excel的表,我将其存为.csv文件,然后通过dos命令下的sqlite3命令导入到了数据库表中,问题是如果不换机子,导入到该数据库表中的数据永久有效.如果我换机子调试的话,该数据库表中的数据就不存在了,会报错,请问有没有解决办法?谢谢! 解决方案 最好存入远程数据库每次启动同步下来数据就可以了,sqlite是系统自带的数据库具体的就是http://blog.csdn.net/tianyit

java-当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码?

问题描述 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 当用JDBC向数据库中插入数据或从数据库中提取数据时,为何有时中文字符会显示为乱码? 怎么才能解决问题,跟jdbc driver Manager的设置有关系吗? 解决方案 数据库字符集 与 页面编码 都使得 是 uft-8?得统一 解决方案二: 建议编码格式采用UTF-8的格式 解决方案三: 在使用数据的每一个节点上,其编码方式必须要一致否则就会出现乱码.特别是使用MySQL时,客户端,连接器.数据库

ASP.NET中如何用程序将excel中的数据导入到数据库中(C#)

问题描述 ASP.NET中如何用程序将excel中的数据导入到数据库中(C#),比较不同的时,excel只有一个表,里面是全部的详细信息,导入到sqlserver中的是多个表,这个如何实现?希望有具体的例子! 解决方案 解决方案二:大致原理:先将EXCEL导入GridView,然后再操作GridView中的数据存入数据库相应表中!在这里不能给你提供原码了,但你可以在Google内收到很多!解决方案三:用的是vs.net2003啊,应该如何?解决方案四:以下是我的一个真实的例子,供参考!<tr>

c#-怎么用C#将数据库中的数据导出到txt中

问题描述 怎么用C#将数据库中的数据导出到txt中 我现在在sqlsever中有一个叫Phone的表,现在要用C#把它里面的数据导入到一个txt中. 求各位大大,给段代码让小弟学习一下~ 解决方案 http://www.jb51.net/article/35989.htm 解决方案二: C# 读取数据库,应该是没有什么问题的.具体要看你的数据库是什么! 将读到的数据写入文件,这个比较简单.只要注意写入的格式控制. 代码,要靠你自己写.只能给你思路! 解决方案三: 参考C#中从数据库导出至txt

mysql-php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来

问题描述 php从数据库中读取某个表中的数据并在页面中一条条列出来,代码如下,数据库里有信息,显示不出来 <?php include(""connectDB.php""); @$query=mysql_query($conSELECT * from xx""); @$result=mysql_fetch_array(@$query); if($result==true){ ?> <table width=""

急求c#怎么把程序中的数据保存到记事本中?重谢

问题描述 c#怎么把程序中的数据保存到记事本中?例如,我把程序中运行的结果保存到记事本中,谁有源代码给我借鉴一下,重谢1 解决方案 解决方案二:可以用writestream写.解决方案三:你想保存什么数据IO里面有写文件的操作解决方案四:我的想法很简单,就是要保存一个数组的数据到记事本中,怎么写?谢谢了解决方案五:我的运行结果计算出来个个数组的数据然后保存到记事本中,解决方案六:FileStreamfs=newFileStream("c:\test.txt",......);fs.Wr