SQL Server 移植到Oralce 项目实战
项目背景
移植一个现有系统到Oracle。原系统基于.Net Framework 1.1, SQL Server 2000数据库,数据操作基本全部使用Store Procedure,总数逾千,因此总体涉及的PL SQL 开发量比较大。
优先级高,开发时程短,参与人员多,是这个项目的显著特点。本人作为项目负责人,主要按照下列步骤进行,最终圆满达成目标。
第一步 评估
1. 确认需要移植的功能列表
2. 评估主要工作量
工作重点在于移植SQL Server SP到 Oracle Package,预估移植一个SP所需平均时间等
第二步 前期准备
1. 确定目标Oracle数据库的版本(Oracle10.1.0.5.0)和编码(ACTUTF8)
数据库的编码确定非常重要,由于原系统支持多语言存储,所以Oracle我们选择了ACTUTF8。这种编码对应的SQL Server 中,1个字符占3个字节。
2. Oracle 数据库设计(咨询Oracle DBA)
3. 评估技术难点,找解决方案
1) Identity栏位实现
使用Trigger
2) 临时表实现
使用Oracle的临时表(8i后已提供)
3) .Net Oracle驱动程序
采用ODP.NET
4. 确定SQL Server -> Oracle 表 / 栏位映射关系,形成SQL Server/Oracle 表对照文档
1) 一般原则,原对象的名称不做改变;
2) 栏位类型,字符类型 -> VARCHAR2, 数字类型 -> NUMBER(m, n);
3) 栏位长度,最大长度 *3, 保存固定长度ID的栏位长度不做变更;
4) 在Oracle 中建立对应表,通过SQL Server DTS导入基础数据
5. SP使用Package组织,并重新命名,形成SQL Server/Oracle SP对照文档。
因为Oracle 对象名称长度不能超过30,SQL Server 的SP长度普遍超过30,因此需要重新命名并分组。
6. &nb
相关文档:
--查询当前连接的实例名
select @@servername
--察看任何数据库属性
sp_helpdb master
--设置单用户模式,同时立即断开所有用户
alter database Northwind set single_user with rollback immediate
--恢复正常
alter database Northwind set multi_user
--察看数据库属性
sp_helpdb
--察看数据库恢复模式
sel ......
今天星期天,因数据库太慢,最后决定将数据库进行重新整理.
(假定数据库名称为:DB_ste)
1、根据现在的数据库的脚本创建一个脚本文件(FILENAME:DB_ste.sql)
2、建立新的数据库DB_ste2,若有文件组的数据库,则需要建立相同的文件组。(DB_ste_Group)
3、将数据文 ......
作者 Haidong Ji 翻译 GoodKid
在我的关于Oracle和SQL Server 互用性的系列文章 part 1 和 part 2 当中,我讨论了Oracle和SQL Server 的一些不同点的话题以及Oracle驱动的可选性。在本主题中,我将讨论一个来自Oracle 10g的新工具,Oracle即时客户端。
对于Oracle 10g以前的版本,如果想建立和Oracle的连接, ......
作者 Haidong Ji 翻译 GoodKid
我们当中的大部分人工作在一个单一的 RDBMS 系统中,如 MSSQL, Oracle, or IBM DB2。然而,我们日益感觉到,我们正处于不同的数据库环境当中并且需要解决数据的互用性问题。
尽管主要的 RDBMS 厂商试图去遵循关系数据库模型原理,并且用非常小的差异去实现它们。另外,几乎主要的 ......
远程链接服务器详细配置
--
建立连接服务器
EXEC
sp_addlinkedserver
'
远程服务器IP
'
,
'
SQL Server
'
--
标注存储
EXEC
sp_addlinkedserver
@server
=
'
server
'
,
--
链接服务器的本地名称。也允许使用实例名称,例如MYSERVER\SQL1
@srvproduct
=
'
product_name
......