欢迎来到天天文库
浏览记录
ID:5325429
大小:149.50 KB
页数:49页
时间:2017-12-08
《从sql server 向oracle 8迁移技术实现方案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、从SQLSERVER向ORACLE8迁移的技术实现方案 数据库端SQL语法的迁移以下为常用的SQL语法迁移,包括数据类型、ID列向SEQUENCE迁移、表(主键、外键、CHECK、UNIQUE、DEFAULT、INDEX)、游标、存储过程、函数、触发器、常用SQL语法与函数几个方面,考虑SQL SERVER的实际情况,没有涉及ORACLE特有的PACKAGE、EXCEPTION等。在以下的描述中,将SQL SERVER的TRANSACT-SQL简称为T-SQL。在ORACLE中,其语法集称为PL/
2、SQL。 <一> 数据类型的迁移 <1>、ORACLE端语法说明在ORACLE中,分析其数据类型,大致可分为数字、字符、日期时间和特殊四大类。其中,数字类型有NUMBER;字符类型有CHAR与VARCHAR2;日期时间类型只有DATE一种;除此之外,LONG、RAW、LONG RAW、BLOB、CLOB和BFILE等数据类型都可视为特殊数据类型。 <2>、SQL SERVER端语法说明在SQL SERVER中,参照上面对ORACLE的划分,数据类型也大致可分为数字、字符、日期时间和特殊四
3、大类。数字类型又可分为精确数值、近似数值、整数、二进制数、货币等几类,其中,精确数值有DECIMAL[(P[, S])]与NUMERIC[(P[, S])];近似数值有FLOAT[(N)];整数有INT、SMALLINT、TINYINT;二进制数有BINARY[(N)]、VARBINARY[(N)];货币有MONEY、SMALLMONEY。字符类型有CHAR[(N)]与VARCHAR[(N)]。日期时间类型有DATETIME、SMALLDATETIME。除此之外,BIT、TIMESTAMP、TEXT
4、和IMAGE、BINARY VARING等数据类型都可视为特殊数据类型。<3>、从SQL SERVER向ORACLE的迁移方案比较ORACLE与SQL SERVER在数据类型上的不同,当从SQL SERVER向ORACLE迁移时,可以做如下调整: SQL SERVER<=> ORACLE 数字类型 DECIMAL[(P[, S])]<=> NUMBER[(P[, S])] NUMERIC[(P[, S])]<=> NUMBER[(P[, S])] FLOAT[(N)]<=> NUMBER[(N
5、)] INT<=> NUMBER SMALLINT<=> NUMBER TINYINT<=> NUMBER MONEY<=> NUMBER[19,4] SMALLMONEY<=> NUMBER[19,4]字符类型 CHAR[(N)]<=> CHAR[(N)] VARCHAR[(N)]<=> VARCHAR2[(N)] 日期时间类型 DATETIME<=> DATE SMALLDATETIME<=> DATE 其它TEXT<=> CLOBIMAGE<=> BLOB BIT<=>
6、 NUMBER(1) 方法:公司原系统中的Money 用于金额时转换用number(14,2);用于单价时用 number(10,4)代替;<二> ID列向SEQUENCE迁移 <1>、SQL SERVER端语法说明在SQL SERVER中,可以将数据库中的某一字段定义为IDENTITY列以做主键识别,如: jlbh numeric(12,0) identity(1,1) /*记录编号字段*/ CONSTRAINT PK_tbl_exam
7、ple PRIMARY KEY nonclustered (jlbh) /*主键约束*/在这里,jlbh是一个ID列,在向具有该列的表插入记录时,系统将从1开始以1的步长自动对jlbh的值进行维护。 <2>、ORACLE端语法说明但在ORACLE中,没有这样的ID列定义,而是采用另一种方法,即创建SEQUENCE。如:/*--1、创建各使用地区编码表--*/drop table LT_AREA;create table LT_AREA ( area_id number(5,0)
8、 NOT NULL, /*地区编码*/ area_name varchar2(20) NOT NULL, /*地区名称*/ constraint PK_LT_AREA PRIMARY KEY(area_id) ); /*--2、创建SEQUENCE,将列area_id 类ID化--*/drop sequence SEQ_LT_AREA;create sequence SEQ_LT_AREA increment by 1 /*该S
此文档下载收益归作者所有