Due to the limitation of maximum object name length (30) on Oracle, the
script generated could have object name conflict.

This is fine:

CREATE SEQUENCE seq_City__CityID;
CREATE TABLE City_
(
   CityID NUMBER(18,0) NOT NULL ,
   Name NVARCHAR2(100) NOT NULL,
   PRIMARY KEY (CityID)
);
CREATE OR REPLACE TRIGGER trg_City__CityID BEFORE INSERT ON City_ FOR EACH
ROW WHEN (new.CityID IS NULL)
BEGIN SELECT seq_City__CityID.nextval INTO :new.CityID FROM dual; END;
/
INSERT INTO City_ (CITYID,NAME) SELECT CITYID,NAME FROM CITY;
DROP TABLE CITY CASCADE CONSTRAINTS;
CREATE SEQUENCE seq_City_CityID;
CREATE TABLE City
(
   CityID NUMBER(18,0) NOT NULL ,
   Name NVARCHAR2(100) NOT NULL,
   PRIMARY KEY (CityID)
);
CREATE OR REPLACE TRIGGER trg_City_CityID BEFORE INSERT ON City FOR EACH ROW
WHEN (new.CityID IS NULL)
BEGIN SELECT seq_City_CityID.nextval INTO :new.CityID FROM dual; END;
/
INSERT INTO City (CityID,Name) SELECT CityID,Name FROM City_;
DROP TRIGGER trg_City__CityID;
DROP SEQUENCE seq_City__CityID;
DROP TABLE City_ CASCADE CONSTRAINTS;

But this is a problem:

CREATE SEQUENCE seq_AlertContex_AlertContextID; (truncated to 30 char)
CREATE TABLE AlertContext_
(
   AlertContextID NUMBER(18,0) NOT NULL ,
   InternalName VARCHAR2(50),
   TableName VARCHAR2(50),
   PRIMARY KEY (AlertContextID)
);
CREATE OR REPLACE TRIGGER trg_AlertContex_AlertContextID BEFORE INSERT ON
AlertContext_ FOR EACH ROW WHEN (new.AlertContextID IS NULL)
BEGIN SELECT seq_AlertContex_AlertContextID.nextval INTO
:new.AlertContextIDFROM dual; END;
/
INSERT INTO AlertContext_ (ALERTCONTEXTID,INTERNALNAME,TABLENAME) SELECT
ALERTCONTEXTID,INTERNALNAME,TABLENAME FROM ALERTCONTEXT;
DROP TABLE ALERTCONTEXT CASCADE CONSTRAINTS;
CREATE SEQUENCE seq_AlertContex_AlertContextID; (cause conflict here)
CREATE TABLE AlertContext
(
   AlertContextID NUMBER(18,0) NOT NULL ,
   InternalName VARCHAR2(50),
   TableName VARCHAR2(50),
   PRIMARY KEY (AlertContextID)
);
CREATE OR REPLACE TRIGGER trg_AlertContex_AlertContextID BEFORE INSERT ON
AlertContext FOR EACH ROW WHEN (new.AlertContextID IS NULL)
BEGIN SELECT seq_AlertContex_AlertContextID.nextval INTO
:new.AlertContextIDFROM dual; END;
/
INSERT INTO AlertContext (AlertContextID,InternalName,TableName) SELECT
AlertContextID,InternalName,TableName FROM AlertContext_;
DROP TRIGGER trg_AlertContex_AlertContextID;
DROP SEQUENCE seq_AlertContex_AlertContextID;
DROP TABLE AlertContext_ CASCADE CONSTRAINTS;

--------------
Cheers,
Jun

Reply via email to