关于转换数据库的问题,从mssql到oracle

来源:百度知道 编辑:UC知道 时间:2024/06/02 16:33:19
我从网上下了一个jsp网站源码,现在就是数据库这部分遇到了问题。

它用的数据库是sqlserver,我只会oracle的。

源码里面带了一个.sql文件,我怎么能转换成oracle数据库。关于jdbc这部分我会,就是怎么把那些表在我的oracle里面建起来不会。

这个.sql文件的部分代码是

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[FK_information_BookStep]') and OBJECTPROPERTY(id, N'IsForeignKey') = 1)
ALTER TABLE [dbo].[information] DROP CONSTRAINT FK_information_BookStep
GO

CREATE TABLE [dbo].[BookStep] (
[BookStepId] [int] IDENTITY (1, 1) NOT NULL ,
[Display] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

CREATE TABLE [dbo].[City] (
[CityId] [int] IDENTITY (1, 1) NOT NULL ,
[Display] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
GO

第一个表

BOOKSTEP中BOOKSTEPID 是自动增加的,你需要创建一个序列,并且创建一个TRIGGER,下面是SQL脚本,按照着执行一遍就可以了。

CREATE TABLE BOOKSTEP(
BOOKSTEPID NUMBER PRIMARY KEY,
DISPALY VARCHAR2(20) NOT NULL
);
CREATE SEQUENCE BOOKSTEP_SEQ;

create or replace trigger BOOKSTEP_TRIGGER
before insert on BOOKSTEP
for each row
begin
select bookstep_seq.nextval into :new.bookstepid from dual;

end;
/

INSERT INTO BOOKSTEP(DISPALY) VALUES('OMG');
INSERT INTO BOOKSTEP(DISPALY) VALUES('WHAT A DAY');
INSERT INTO BOOKSTEP VALUES(10,'CHECKOUT');
SELECT * FROM BOOKSTEP

第二个表
CREATE TABLE CITY(
CITYID NUMBER PRIMARY KEY NOT NULL,
DISPALY VARCHAR2(20) NOT NULL
);
CREATE SEQUENCE CITY_SEQ;

create or replace trigger CITY_TRIGGER
before insert on CITY
for each row
begin
select CITY_SEQ.NEXTVAL into :new.CITYID from dual;