Перенос схемы
От: Sanito Украина  
Дата: 30.07.02 07:49
Оценка:
Привет всем!

Кто-нибудь сталкивался с необходимостью переноса схемы
из одной субд в другую? Скажем, к примеру, из Oracle 8i в
MSSQL 2К? Предполагается, что перенос несовместимых по
синтаксису вьюшек, хранимых процедур и триггеров будет
выполнен "ручками", задачей является перенос таблиц, данных,
создание индексов и констрейнтов (несовместимые check-и
так же пропускать, создавать только совместимые).

DTS не устраивает, т.к. переносятся только таблицы и данные,
а индексы и констрейнты нет. ;-(
Re: Перенос схемы
От: SergeMS Россия  
Дата: 30.07.02 08:16
Оценка:
Здравствуйте Sanito, Вы писали:

S>Привет всем!


S>Кто-нибудь сталкивался с необходимостью переноса схемы

S>из одной субд в другую? Скажем, к примеру, из Oracle 8i в
S>MSSQL 2К? Предполагается, что перенос несовместимых по
S>синтаксису вьюшек, хранимых процедур и триггеров будет
S>выполнен "ручками", задачей является перенос таблиц, данных,
S>создание индексов и констрейнтов (несовместимые check-и
S>так же пропускать, создавать только совместимые).

S>DTS не устраивает, т.к. переносятся только таблицы и данные,

S>а индексы и констрейнты нет. ;-(

Можно использовать ERwin.
Сначала делаешь Reverse Engineering из Oracle, получаешь структуру БД
Затем делаешь Alter Database для сервера MSSQL 2K.
Re: Перенос схемы
От: Алекс Россия http://wise-orm.com
Дата: 30.07.02 08:25
Оценка:
Здравствуйте Sanito, Вы писали:

S>Привет всем!


S>Кто-нибудь сталкивался с необходимостью переноса схемы

S>из одной субд в другую? Скажем, к примеру, из Oracle 8i в
S>MSSQL 2К? Предполагается, что перенос несовместимых по
S>синтаксису вьюшек, хранимых процедур и триггеров будет
S>выполнен "ручками", задачей является перенос таблиц, данных,
S>создание индексов и констрейнтов (несовместимые check-и
S>так же пропускать, создавать только совместимые).

S>DTS не устраивает, т.к. переносятся только таблицы и данные,

S>а индексы и констрейнты нет. ;-(

Я знаю три способа
insert into ...select from

select into

и
Bulk insert


В первых двух случаях сервер необходимо прилинковать.
Re[2]: Перенос схемы
От: Аноним  
Дата: 30.07.02 08:30
Оценка:
Здравствуйте SergeMS, Вы писали:

SMS>Можно использовать ERwin.

SMS>Сначала делаешь Reverse Engineering из Oracle, получаешь структуру БД
SMS>Затем делаешь Alter Database для сервера MSSQL 2K.

Это конечно выход, только вот стоимость ErWin довольно высока ;-))
В общем, могу сказать, что не устраивает этот вариант.
К сожалению.
Re[2]: Перенос схемы
От: Аноним  
Дата: 30.07.02 08:33
Оценка:
Здравствуйте Алекс, Вы писали:

А>Я знаю три способа

А>
А>insert into ...select from
А>

А>
А>select into
А>

А>и
А>
А>Bulk insert
А>


А>В первых двух случаях сервер необходимо прилинковать.


Поподробнее пожалуйста.
Что есть параметр команды insert into ... ?
БД?
Т.е. я могу, используя эту команду, перенести, скажем, 10 таблиц,
перенести их данные, создать _зеркальные_ относительно БД-источника
индексы и ссылочные ограничения?

По-моему кто-то кого-то не понял ;-)
Re: Перенос схемы
От: Sanito Украина  
Дата: 30.07.02 08:36
Оценка:
Сорри всем. Аноним в реплаях — это я.
Забыл пароль ввести.
Re[3]: Перенос схемы
От: Алекс Россия http://wise-orm.com
Дата: 30.07.02 09:22
Оценка:
Здравствуйте Аноним, Вы писали:

[]

А>Поподробнее пожалуйста.

А>Что есть параметр команды insert into ... ?
А>БД?
А>Т.е. я могу, используя эту команду, перенести, скажем, 10 таблиц,
А>перенести их данные, создать _зеркальные_ относительно БД-источника
А>индексы и ссылочные ограничения?

А>По-моему кто-то кого-то не понял


вот так из oracle в mssql переносится табличка
add_addlinkedserver @server = 'имя сервера',
   @srvproduct = 'Oracle',
   @provider = 'MSDAORA',
   @datasrc = 'имя схемы'
select * into table1 from <имя сервера>.<имя схемы>.<dbo>.table1
Re[4]: Перенос схемы
От: Sanito Украина  
Дата: 30.07.02 10:40
Оценка:
Здравствуйте Алекс, Вы писали:

А>вот так из oracle в mssql переносится табличка

А>
А>add_addlinkedserver @server = 'имя сервера',
А>   @srvproduct = 'Oracle',
А>   @provider = 'MSDAORA',
А>   @datasrc = 'имя схемы'
А>select * into table1 from <имя сервера>.<имя схемы>.<dbo>.table1
А>


Табличку можно перенести и с помощью DTS (визард "Import/Export",
входящий в состав SQL Server Client), либо с помощью DataPump
из Delphi.

Речь же идет о наиболее полном переносе схемы. В частности, как
я уже писал, это индексы и внешние ключи. Кроме того, есть еще
проблема ограничений на размер имени в различных СУБД (в частности,
Oracle имеет ограничение 30 символов на размер идентификатора).
Хорошо бы их обрезать.

Я пытаюсь найти что-то похожее, что кто-то уже делал. Просто писать
самостоятельно довольно долго и сложно — можно замахаться с
тестированием. Пока, кроме ErWin, ничего, подходящего по
функциональности, не обнаружил. Но это не подходит, т.к. эта
"утилита" должна входить в поставку некоторого продукта, так что
erwin отпадает.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.