Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Миграция ORACLE -> MSSQL 2005
|
|||
|---|---|---|---|
|
#18+
Локшин Марк ASCRUSКстати насколько я понимаю MS сделала ход конем - если народ на MSSQL2005 начнет в ходе работ использовать C# процедуры, то перевод БД на другой сервер будет крайне затруднителен (тут уж и я конвертор написать не смогу). Так что не знаю как насчет прибавления функциональности, а вот защиты от перевода на конкурирующие БД они добились Так вроде в Oracle поддержка C# уже появилась, насколько я понимаю. Она чем-то принципиально отличается? Я думаю что да, принципиально отличается. Напишите на PL/SQL функцию: Код: plaintext 1. 2. 3. 4. Вопрос - во сколько (сотен?) раз аналогичный код на C# будет медленнее в Oracle/Sybase по сравнению со своим аналог на PLSQL/WatcomSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 18:31 |
|
||
|
Миграция ORACLE -> MSSQL 2005
|
|||
|---|---|---|---|
|
#18+
segunА вы скачивали и смотрели этот продукт или просто прочитали статью и сделали выводы? А смысл скачивать ? Что - сей продукт "волшебным" образом расширяет функционал TSQL до уровня PL/SQL ? По моему достаточно здравого логического рассуждения, чтобы понять, что это лажа. Привожу простой пример - в статье написано, что генераторы Оракла автоматически заменяются счетчиками. Сразу видны несоотвествия: 1. Генератор Оракла может использоваться как сквозная нумерация на несколько таблиц. Счетчики MSSQL этого сделать не в состоянии. В отличие мухлежа с ROW_ID, счетчики в таблицу-эмулятор с структурой "name, value" не вынесешь, так как она будет по любому участвовать в транзакции. 2. Никто не ущемляет Oracle программистов использовать несколько генераторов на таблицу - как известно два счетчика на одну таблицу не повесишь. 3. Генераторы могут использоваться в любом месте - триггере (BEFORE кстати), хранимых процедурах и функциях PL/SQL и клиентской части, причем код может получить как текущее значение генератора, так и потребовать следующее. В MSSQL2000 можно получить только текущее значение счетчика, буду рад узнать, что в MSSQL2005 сделали аналог ASA-шной функции GET_IDENTITY(), позволяющей получить по указанной таблице новое значение счетчика без физической вставки записи - только тогда можно эмулировать поведение генераторов через счетчики. Не спорю, конечно они могли и выкрутиться: например организовать на каждый генератор табличку с инкрементным полем и написать дублирующие функции генератора, которые считывают последнее значение счетчика и заносят туда новую запись, возвращая полученный @@IDENTITY. Только вот записи в ней добавлятся будут - как никак участвует в транзакциях, если не сделали аналога GET_IDENTITY(). Но все это цветочки - а вот как быть с наворотами Оракла, в виде ООП, массивов, динамического SQL с поддержкой выполнения скрипта большого объема и прочих радостей жизни ? Неужели тоже эмулировали ? Будет интересно услышать отзывы и впечатления тех, кто воспользовался этой утилитой для портирования полноценных промышленных БД Оракла на MSSQL2005, а не мелких базок, написанных студентами. Я конечно не знаток Oracle, однако так как имел опыт написания конвертора с MSSQL2000 на ASA9, которая на достаточно большом уровне поддерживает максимальную совместимость с ним (насколько позволяют собственные архитектурные особенности) ... и то не мало подолбался, пока написал полноценный конвертор. И ведь это я писал для связки, где ASA9 значительно на уровне WatcomSQL превосходит TSQL и позволяет полностью на своей функциональности эмулировать особенности TSQL, которые в ASA в явном семантическом виде отсутствуют и реализованы по другому. Однако даже с учетом нового, появившегося в MSSQL2005 я лично себе не представляю написания обратного конвертора БД с WatcomSQL на TSQL 2005, несмотря на расширения, отсутствует целая куча необходимой даже для эмуляции функциональности. Что же тогда говорить об миграции с Oracle, где много народу просто обожает пользоваться курсорами, массивами и прочей с моей точки зрения несуразностью по старинке, хотя вроде бы как 9-ка и 10-ка по функционалу SQL уже позволяют счастливо избегать таких вредных привычек ? segunИ Oracle и DB2 в той или иной степени поддерживают интеграцию с .Net. Та же песня - в той или иной степени - это обычные расширенные хранимые процедуры, как например это сделано в Oracle, DB2 и всех Sybase серверах для поддержки Java. Насколько я понимаю, в MSSQL2005 сделана довольно тесная интеграция с .NET, позволяющая много чего, что не сможет обычная расширенная хранимая процедура или функция. Или я ошибаюсь ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 19:17 |
|
||
|
Миграция ORACLE -> MSSQL 2005
|
|||
|---|---|---|---|
|
#18+
ASCRUSЧто же тогда говорить об миграции с Oracle, где много народу просто обожает пользоваться курсорами, массивами и прочей с моей точки зрения несуразностью по старинке, хотя вроде бы как 9-ка и 10-ка по функционалу SQL уже позволяют счастливо избегать таких вредных привычек ? Есть подозрение, что Вас скоро будут бить :)) Возможно, начнут уже сегодня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 19:30 |
|
||
|
Миграция ORACLE -> MSSQL 2005
|
|||
|---|---|---|---|
|
#18+
ну.... насчет GET_IDENTITY() - можно получить текущее значение и приращение через набор функций ident_current/ident_seed/ident_incr насчет остального - надо просто смотреть на эту тулзу и тогда уже решать. Что толку воздух сотрясать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 19:35 |
|
||
|
Миграция ORACLE -> MSSQL 2005
|
|||
|---|---|---|---|
|
#18+
ChA ASCRUSЧто же тогда говорить об миграции с Oracle, где много народу просто обожает пользоваться курсорами, массивами и прочей с моей точки зрения несуразностью по старинке, хотя вроде бы как 9-ка и 10-ка по функционалу SQL уже позволяют счастливо избегать таких вредных привычек ? Есть подозрение, что Вас скоро будут бить :)) Возможно, начнут уже сегодня... С какой стороны - Oracle или MSSQL ? ;) авторну.... насчет GET_IDENTITY() - можно получить текущее значение и приращение через набор функций ident_current/ident_seed/ident_incr Перечисленные функции не возвращают новое значение в MSSQL2000. Только последнее - в этом есть разница и кстати иногда большая и обидная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 19:55 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=33404402&tid=1553724]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 380ms |

| 0 / 0 |
