Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2022, 15:30   #1
Naxal123
Новичок
Джуниор
 
Регистрация: 19.11.2022
Сообщений: 1
По умолчанию Нужна помощь в конвертации БД Oracle в PostgresSQL

Основные моменты были изменены, но sql shell продолжает на что-то ругаться. Помогите найти незамеченное и исправить. В целях экономии места некоторые инсерты могут быть "подтерты" Основные типы ошибок:

ОШИБКА: отношение "S_СЛУЖАЩИЕ" уже существует

ОШИБКА: отношение "s_СПЕЦИАЛЬНОСТИ" уже существует

ОШИБКА: отношение "s_ЛАБОРАТОРИИ" уже существует

ОШИБКА: отношение "s_ДЕТИ_СОТРУДНИКОВ" уже существует

ОШИБКА: отношение "s_ПРЕМИИ" уже существует

ОШИБКА: отношение "S_ЛАБОРАТОРИИ" не существует

ОШИБКА: отношение "s_СЛУЖАЩИЕ" не существует

СТРОКА 1: INSERT INTO "S_ДЕТИ_СОТРУДНИКОВ" ("СЛУЖАЩИЙ_ИД","ФАМИЛИЯ","И...

ОШИБКА: повторяющееся значение ключа нарушает ограничение уникальности "pk_СЛУЖАЩИЙ_ИД"


Код:
ИД VARCHAR (20) NOT NULL ,
ТАБЕЛЬНЫЙ_НОМЕР VARCHAR (20) NOT NULL UNIQUE ,
ЛАБОРАТОРИЯ_ИД VARCHAR (20) NOT NULL ,
СПЕЦИАЛЬНОСТЬ_ИД VARCHAR (20) NOT NULL ,
ФАМИЛИЯ VARCHAR (50) NOT NULL ,
ИМЯ VARCHAR (20) NOT NULL ,
ОТЧЕСТВО VARCHAR (50),
ПОЛ VARCHAR (2) NOT NULL ,
ДЕНЬ_РОЖДЕНИЯ DATE NOT NULL ,
СЕМ_ПОЛОЖЕНИЕ VARCHAR (1) DEFAULT 0 NOT NULL ,
ТЕЛЕФОН VARCHAR (20),
АДРЕС VARCHAR (100),
ОКЛАД NUMERIC(10,2) NOT NULL,
CONSTRAINT PK_СЛУЖАЩИЙ_ИД PRIMARY KEY (ИД)
);
CREATE TABLE S_СПЕЦИАЛЬНОСТИ (
ИД VARCHAR (20) NOT NULL ,
НАИМЕНОВАНИЕ VARCHAR (50) NOT NULL ,
ДАТА_ОТКРЫТИЯ DATE,
ДАТА_ЗАКРЫТИЯ DATE,
CONSTRAINT PK_СПЕЦИАЛЬНОСТЬ_ИД PRIMARY KEY (ИД)
);
CREATE TABLE S_ЛАБОРАТОРИИ (
ИД VARCHAR (20) NOT NULL ,
РУКОВОДИТЕЛЬ_ИД VARCHAR (20) NOT NULL ,
НАИМЕНОВАНИЕ VARCHAR (50) NOT NULL ,
ДАТА_ОТКРЫТИЯ DATE,
ДАТА_ЗАКРЫТИЯ DATE,
CONSTRAINT PK_ЛАБОРАТОРИЯ_ИД PRIMARY KEY (ИД)
);

 
CREATE TABLE S_ДЕТИ_СОТРУДНИКОВ (
СЛУЖАЩИЙ_ИД VARCHAR (20) NOT NULL ,
ФАМИЛИЯ VARCHAR (50) NOT NULL ,
ИМЯ VARCHAR (20) NOT NULL ,
ОТЧЕСТВО VARCHAR (50),
ДЕНЬ_РОЖДЕНИЯ DATE
);
 
CREATE TABLE S_ПРЕМИИ (
СЛУЖАЩИЙ_ИД VARCHAR (20) NOT NULL ,
НОМЕР_ПРИКАЗА VARCHAR (20) NOT NULL ,
ДАТА_ПРИКАЗА DATE,
РАЗМЕР NUMERIC(10,2)
);
 

INSERT INTO "S_ЛАБОРАТОРИИ" ("ИД","НАИМЕНОВАНИЕ","РУКОВОДИТЕЛЬ_ИД","ДАТА_ОТКРЫТИЯ","ДАТА_ЗАКРЫТИЯ") VALUES ('2','физическая','13',TO_DATE('05.10.06','DD.MM.RR'),TO_DATE('10.05.18','DD.MM.RR'));
INSERT INTO "S_ЛАБОРАТОРИИ" ("ИД","НАИМЕНОВАНИЕ","РУКОВОДИТЕЛЬ_ИД","ДАТА_ОТКРЫТИЯ","ДАТА_ЗАКРЫТИЯ") VALUES ('123','отдел сбыта','90',TO_DATE('05.10.06','DD.MM.RR'),NULL);
 
INSERT INTO "S_СЛУЖАЩИЕ" ("ИД","ТАБЕЛЬНЫЙ_НОМЕР","ФАМИЛИЯ","ИМЯ","ОТЧЕСТВО","ПОЛ","СЕМ_ПОЛОЖЕНИЕ","ЛАБОРАТОРИЯ_ИД","ТЕЛЕФОН","СПЕЦИАЛЬНОСТЬ_ИД","ОКЛАД","ДЕНЬ_РОЖДЕНИЯ","АДРЕС") VALUES ('1','1','Иванов','Иван','Иванович','М','1','1','351330','345','7541900',TO_DATE('23.08.63','DD.MM.RR'),NULL);
INSERT INTO "S_СЛУЖАЩИЕ" ("ИД","ТАБЕЛЬНЫЙ_НОМЕР","ФАМИЛИЯ","ИМЯ","ОТЧЕСТВО","ПОЛ","СЕМ_ПОЛОЖЕНИЕ","ЛАБОРАТОРИЯ_ИД","ТЕЛЕФОН","СПЕЦИАЛЬНОСТЬ_ИД","ОКЛАД","ДЕНЬ_РОЖДЕНИЯ","АДРЕС") VALUES ('2','2','Петров','Иван','Иванович','М','1','2','343456','345','6424580',TO_DATE('16.10.75','DD.MM.RR'),NULL);
INSERT INTO "S_СЛУЖАЩИЕ" ("ИД","ТАБЕЛЬНЫЙ_НОМЕР","ФАМИЛИЯ","ИМЯ","ОТЧЕСТВО","ПОЛ","СЕМ_ПОЛОЖЕНИЕ","ЛАБОРАТОРИЯ_ИД","ТЕЛЕФОН","СПЕЦИАЛЬНОСТЬ_ИД","ОКЛАД","ДЕНЬ_РОЖДЕНИЯ","АДРЕС") VALUES ('3','3','Федоров','Иван','Иванович','М','1','1','223476','452','5865920',TO_DATE('28.09.65','DD.MM.RR'),NULL);
 
INSERT INTO "S_СПЕЦИАЛЬНОСТИ" ("ИД","НАИМЕНОВАНИЕ","ДАТА_ОТКРЫТИЯ","ДАТА_ЗАКРЫТИЯ") VALUES ('345','программист',TO_DATE('05.10.06','DD.MM.RR'),TO_DATE('01.06.15','DD.MM.RR'));
INSERT INTO "S_СПЕЦИАЛЬНОСТИ" ("ИД","НАИМЕНОВАНИЕ","ДАТА_ОТКРЫТИЯ","ДАТА_ЗАКРЫТИЯ") VALUES ('452','системотехник',TO_DATE('05.10.06','DD.MM.RR'),NULL);
INSERT INTO "S_СПЕЦИАЛЬНОСТИ" ("ИД","НАИМЕНОВАНИЕ","ДАТА_ОТКРЫТИЯ","ДАТА_ЗАКРЫТИЯ") VALUES ('111','физик',TO_DATE('05.10.06','DD.MM.RR'),NULL);

INSERT INTO S_ПРЕМИИ (СЛУЖАЩИЙ_ИД, РАЗМЕР, НОМЕР_ПРИКАЗА, ДАТА_ПРИКАЗА)
VALUES (1, 2355, '6784/у', TO_DATE('12-02-2012', 'dd-mm-yyyy'));
INSERT INTO S_ПРЕМИИ (СЛУЖАЩИЙ_ИД, РАЗМЕР, НОМЕР_ПРИКАЗА, ДАТА_ПРИКАЗА)
VALUES (10, 1500, '0405/к', TO_DATE('05-10-2015', 'dd-mm-yyyy'));

COMMIT;
 
ALTER TABLE S_ДЕТИ_СОТРУДНИКОВ ADD CONSTRAINT FK_ДЕТИ_СОТРУДНИКОВ
FOREIGN KEY (СЛУЖАЩИЙ_ИД) REFERENCES S_СЛУЖАЩИЕ (ИД);
 
ALTER TABLE S_ПРЕМИИ ADD CONSTRAINT FK_ПРЕМИИ FOREIGN KEY
(СЛУЖАЩИЙ_ИД) REFERENCES S_СЛУЖАЩИЕ (ИД);
ALTER TABLE S_СЛУЖАЩИЕ ADD CONSTRAINT FK_ЛАБОРАТОРИЯ_ИД FOREIGN
KEY (ЛАБОРАТОРИЯ_ИД) REFERENCES S_ЛАБОРАТОРИИ (ИД);
ALTER TABLE S_СЛУЖАЩИЕ ADD CONSTRAINT FK_СПЕЦИАЛЬНОСТЬ_ИД
FOREIGN KEY (СПЕЦИАЛЬНОСТЬ_ИД) REFERENCES S_СПЕЦИАЛЬНОСТИ (ИД);
 
ALTER TABLE S_ЛАБОРАТОРИИ ADD CONSTRAINT FK_РУКОВОДИТЕЛЬ_ИД
FOREIGN KEY (РУКОВОДИТЕЛЬ_ИД) REFERENCES S_СЛУЖАЩИЕ (ИД);
Naxal123 вне форума Ответить с цитированием
Старый 21.11.2022, 13:04   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,158
По умолчанию

ошибки же на русском - чего тут непонятного?
там где пишет
- уже существует: не нужно повторно его добавлять, в принципе можете игнорировать, и так не добавит
- не существует: наоборот нужно добавить внешний ключ необходимый, проигнорировать не получится - или порядок выполнения неверный... то есть ссылаетесь до того как создали например
- повторяющееся значение ключа нарушает ограничение уникальность: скорее всего повторно пытаетесь добавить уже существующее значение, так-же можно проигнорить - не добавит

Последний раз редактировалось ADSoft; 21.11.2022 в 13:06.
ADSoft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна идея, о конвертации fox pro в SQL shurik666 SQL, базы данных 14 29.02.2012 15:36
запрос(postgressql) kolyan4 Помощь студентам 2 23.01.2011 21:56
Очень нужна помощь c матрицами, макросами в Excel. Заранее благодарен(поверьте, очень-очень нужна помощь) Farridjan Помощь студентам 1 03.07.2009 12:24
Очень нужна помощь с написанием программы... срочно(буду благодарен за помощь) 5Paladin5 Помощь студентам 3 02.07.2009 09:12
Нужна информация по Oracle! Николай_ Помощь студентам 1 15.09.2008 12:09