公司项目oracle数据库,要迁移到mssql数据库,有啥省心省钱的工具或方案吗

火星求索 2015-03-12 11:23:58
加精

各位大大,我的oracle数据库项目,要迁移到mssql数据库,有啥省心省钱的工具或方案吗

迁移内容:

oracle表结构
oracle表部分初始化数据

·有分就是任性~~
...全文
3965 68 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
68 条回复
切换为时间正序
请发表友善的回复…
发表回复
wild_horse_007 2015-08-13
  • 打赏
  • 举报
回复
给大家分享一下我的数据同步工具






wild_horse_007 2015-08-13
  • 打赏
  • 举报
回复
我正在进行与楼主一样的工作,将一个大型ERP系统从ORACLE转到SQL SERVER 2008R2,有一千多个表,进展还是比较顺利的,基本没有遇到太麻烦的问题,因为ORACLE和SQL SERVER 都在同时使用,所以自己使用PB的数据管道写了一个数据即时同步工具,其实也不算即时同步,是每融几分钟同步一次。表结构虽然可以使用PB的数据管道同步,不过我还是自己手动修改SQL,因为改一个表只要1分钟,我觉得没必要用工具,还是自己确实过安心一点;视图、存储过程我也是自己手工修改,问题不大,因为我比较喜欢写SQL代码 。
fish_dream 2015-06-25
  • 打赏
  • 举报
回复
使用pb数据管道,
火星求索 2015-04-22
  • 打赏
  • 举报
回复
谢谢苦行僧,见到一个面熟的,我07年玩论坛的时候认得你 项目太忙,迁移工作又被推迟了, 帖子放的太久也不好,还是先接了帖子, 我会将最后整理的步骤发布到csdn个人博客
hery2002 2015-04-18
  • 打赏
  • 举报
回复
1-2-3步是否可以合为一步,通过ETL来实现?数据类型在SSIS的转换中已经可以完成,SEQUENCE的话,最好是在插入的时候设置为OFF,等数据插入完成了再统一设置为ON即可,把起始值设为当前表的最大值即可,通过遍历完成。 前面提到的SSMA工具也可以尝试一下。
Tiger_Zhao 2015-04-09
  • 打赏
  • 举报
回复
关于第二步:
SQL Server 2012 也有序列了
CREATE SEQUENCE (Transact-SQL)
火星求索 2015-04-09
  • 打赏
  • 举报
回复
第一步:(正在进行中。。。) 转换所有表结构从oracle到sql server

数据库基本转换完成,主要用到的数据类型转换如下
/*
Oracle 10		Mssql2005

NUMBER(n)n>5		int
NUMBER(n)2<n<5	smallint
NUMBER(1)			bit 只有0,1 
NUMBER(1)			tinyint  1<x<9
NUMBER(2)			tinyint  10<x<100
NUMBER(n,m)		decimal(n, m)
VARCHAR2(20)		varchar(20)无汉字
					nvarchar(20)有汉字
Date				datetime
Clob				text
blob				text
Blob (图片)			Image 
SYS.XMLTYPE		xml
*/

第二步: oracle序列迁移到sql server ,项目中大量使用序列,且很多是先拿序列,所有直接使用sql server 递增会出现问题 第三步: oracle中数据迁移至sql server 第四步: 更改项目数据访问层代码 第五步: 使用IOC完成数据库自动切换
newnazi 2015-03-29
  • 打赏
  • 举报
回复
不同类型数据库转换 没有特定的工具 表结构转换需要人工校对 其他的就手工吧
靠谱的JIAO 2015-03-27
  • 打赏
  • 举报
回复
用powerdesin,不过转后的sql还需要自己改下
吉普赛的歌 2015-03-26
  • 打赏
  • 举报
回复
不明白你为什么要用sqlserver2005, 而不用 2008 或者 2012。 2008 比 2005 要好很多的。 你现在不升级, 到后面又是麻烦, 何苦呢? 特别是操作系统, 建议用 winserver2008或者 winserver2012, 而不是 winserver 2003
alexander0729 2015-03-24
  • 打赏
  • 举报
回复
无非就是数据+逻辑 导数据的话,就无所谓了,都是老鸟了,连个数据都导不过去?这不可能吧,无非就是快与慢的问题, 再慢也慢不到哪去。 逻辑的迁移,这是比较麻烦的,没什么通用的工具, 而且还要考虑到性能的优化问题, 所以最好的办法就是最笨的方法:重写!
Tiger_Zhao 2015-03-24
  • 打赏
  • 举报
回复
去掉去序列,用自增交互更少啊。
怎么会设计在程序端取序列的?要取也应该在触发器、存储过程中啊。
火星求索 2015-03-24
  • 打赏
  • 举报
回复
第一步:(正在进行中。。。) 转换所有表结构从oracle到sql server


/*

				高效方案		
Oracle 10		Mssql2005		

NUMBER(n) n>1	int	

NUMBER(1)		Bit				值为(0,1)
				Tinyint			值为(1~9) 
				
VARCHAR2(20)    Varchar(20)		

Date			datetime	

*/
第二步: oracle序列迁移到sql server ,项目中大量使用序列,且很多是先拿序列,所有直接使用sql server 递增会出现问题 第三步: oracle中数据迁移至sql server 第四步: 更改项目数据访问层代码 第五步: 使用IOC完成数据库自动切换
火星求索 2015-03-24
  • 打赏
  • 举报
回复
这几天有点忙,有其他紧急工作要做,所有数据库迁移工作延误了,也没有及时把动态更新上来,先把整理出来的一部分发上来 楼上各位建议的etl和formtool都不错,另外Tiger_Zhao提到的问题, 我的项目在使用oracle序列时,在没插入数据之前把序列取出来使用了,是否有好的建立
引用 48 楼 Tiger_Zhao 的回复:
3)SQL Server用自增列,Oracle用触发器自动取序列,程序是一样的。
天-笑 2015-03-23
  • 打赏
  • 举报
回复
关注下,留个脚印
nihao88a 2015-03-23
  • 打赏
  • 举报
回复
学习一下,帮顶!
xiaoxiangqing 2015-03-22
  • 打赏
  • 举报
回复
用自带的导入导出比较方便
haitao 2015-03-20
  • 打赏
  • 举报
回复
表结构可以导出为sql建表语句,只是个别字段类型、写法可能有点差异 数据是利用现成工具,还是自己写一个工具,还是导出为insert sql语句,看哪一种方便了 其它sql就要注意各自的方言了,人工转应该也问题不大
zhangmeeno 2015-03-20
  • 打赏
  • 举报
回复
我就是为了 有分就是任性 来的
CCCCCchenw 2015-03-19
  • 打赏
  • 举报
回复
楼主加油 加油
加载更多回复(39)
2024 年 Uber 乘车分析数据集 这个综合数据集包含 2024 年 Uber 运营的详细拼车数据,提供了有关预订模式、车辆性能、收入流、取消行为和客户满意度指标的丰富见解。 数据集概述 该数据集捕获了多种车辆类型的 148,770 个总预订,并提供了拼车作的完整视图,包括成功乘车、取消、客户行为和财务指标。 主要统计数据: 总预订量:148.77K 次乘车 成功率:65.96%(93K 完成骑行) 取消率:25%(37.43K 取消预订) 客户取消:19.15%(27K 乘车) 司机取消: 7.45% (10.5K 乘车) 数据模式 数据集包含以下列: 列名称 描述 Date 预订日期 Time 预订时间 Booking ID 每次行程预订的唯一标识符 Booking Status 预订状态(已完成、客户取消、司机取消等) Customer ID 客户的唯一标识符 Vehicle Type 车辆类型(Go Mini、Go Sedan、Auto、eBike/Bike、UberXL、Premier Sedan) Pickup Location 游乐设施的起点 Drop Location 乘车目的地 Avg VTAT 司机到达上车地点的平均时间(以分钟为单位) Avg CTAT 从取件到目的地的平均行程时间(以分钟为单位) Cancelled Rides by Customer 客户发起的取消标志 Reason for cancelling by Customer 客户取消原因 Cancelled Rides by Driver 驱动程序启动的取消标志 Driver Cancellation Reason 司机取消原因 Incomplete Rides 未完成骑行标志 Incomplete Rides Reason 不完整骑行的原因

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧