WEB开发网
开发学院数据库Oracle 从SQL SERVER 向ORACLE 8迁移的技术实现方案 阅读

从SQL SERVER 向ORACLE 8迁移的技术实现方案

 2008-09-08 12:52:59 来源:WEB开发网   
核心提示: 方法:公司原系统中的Money 用于金额时转换用number(14,2);用于单价时用 number(10,4)代替;<二> ID列向SEQUENCE迁移<1>、SQL SERVER端语法说明在SQL SERVER中,可以将数据库中的某一字段定义为IDENTITY列

方法:

公司原系统中的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_example 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) 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 /*该SEQUENCE以1的步长递增*/
start with 1 maxvalue 99999; /*从1开始,最大增长到99999*/
/*--3、实际操作时引用SEQUENCE的下一个值--*/
insert into LT_AREA(area_id, area_name) values(SEQ_LT_AREA.NEXTVAL, '深圳');
insert into LT_AREA(area_id, area_name) values(SEQ_LT_AREA.NEXTVAL, '广州');
insert into LT_AREA(area_id, area_name) values(SEQ_LT_AREA.NEXTVAL, '北京');
/*--4、新插入连续三条记录后,下一条语句运行后,‘上海’地区的area_id为4--*/
insert into LT_AREA(area_id, area_name) values(SEQ_LT_AREA.NEXTVAL, '上海');

上一页  1 2 3 4 5 6 7  下一页

Tags:SQL SERVER ORACLE

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接