Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 автоматизировать перезапись процедур с SQL Server на DB2  [new]
to_db2
Guest
имеются примерно 800 однотипных процедур T-SQL,
которые переливают данные из 2 рабочих баз в одну базу для репортистики,
т.е. почти все они делают вставку в денормализованные таблицы третьей базы.
данные в базы SQL Server записывались некоторой софтиной, которую сейчас заменят другой аналогичной,
только вместо таблиц SQL Server она будет заполнять таблицы DB2.
таблицы по сути одинаковые(клиентские счета), но могут отличаться названиями.
столбцы тоже могут иметь другие имена и типы.
стоит задача перевести процедуры с T-SQL на что там имеется в DB2.
чтобы они из аналогичных таблиц перелили данные в базу для отчетов,
аналогичную той, что есть на SQL Server-е
можно ли как-то автоматизировать процесс?
поделитесь пожалуйста соображениями
18 янв 12, 18:11    [11928171]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
1
Guest
Создаете 2 таблицы мапинга
-Для мапинга названия таблиц
-для мапинга столбцов этих таблиц, можете здесь, при необходимости, указать типы этих столбцов
и пишите скрипт, который в проходит эти таблицы, создает sql для заливки данных из одной базы в другую и в динамике выполняется
18 янв 12, 18:21    [11928242]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31960
to_db2
можно ли как-то автоматизировать процесс?
Нет, подобия T-SQL там нет, самое близкое это PL. Сомневаюсь, что можно найти транслятор.

1
Создаете 2 таблицы мапинга
-Для мапинга названия таблиц
-для мапинга столбцов этих таблиц, можете здесь, при необходимости, указать типы этих столбцов
и пишите скрипт, который в проходит эти таблицы, создает sql для заливки данных из одной базы в другую и в динамике выполняется
Интересно, как это поможет переписать процедуры с языка T-SQL на C, к примеру? :-)

Вопрос то не про импорт данных, а про переписывание некой логики с одного языка на другой.
18 янв 12, 18:32    [11928305]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
1
Guest
alexeyvg

автор
стоит задача перевести процедуры с T-SQL на что там имеется в DB2.
чтобы они из аналогичных таблиц перелили данные в базу для отчетов
18 янв 12, 18:41    [11928354]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
to_db2
Guest
процедуры не переписывались со времен 2000,
там нет наворотов вроде pivot или cross apply,
грубо говоря, все сводится к многократным
truncate table; insert into ... select...; update 
с промежуточными записями в таблицу log_p после выполнения каждого update из или insert.
вроде сплошной ANSI 92.
позаменять названия таблиц и столбцов, вычитывая текст процедур из sys.sql_modules?
18 янв 12, 18:43    [11928365]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31960
1
alexeyvg

автор
стоит задача перевести процедуры с T-SQL на что там имеется в DB2.
чтобы они из аналогичных таблиц перелили данные в базу для отчетов
А, невнимательно прочитал...
18 янв 12, 19:03    [11928451]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
to_db2
Guest
1,

простите, несколько раз перечитала, но не поняла, как проходить эти таблицы.
таблицы маппинга конечно будут,
но я думала, проходить надо тексты процедур, и ок заменить там названия таблиц, но как там заменять поля, непонятно.
куча исходных таблиц могут иметь поле просто ID,
а, допустим, в новых таблицах они будут уже называться id_smth1, id_smth2, ...

а как проходить таблицы маппинга и по ним получать процедуры?
18 янв 12, 19:20    [11928534]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
1
Guest
Вам надо просто найти человека, у которого есть опыт подобной работы и договориться с ним.
18 янв 12, 19:50    [11928657]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
to_db2
Guest
1,

уже обломали, сказамши "мигрировать своими силами"
18 янв 12, 19:57    [11928689]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
1
Guest
Ну тогда, надо знать
Что такое - цикл, курсор, insert, delete и как создать и выполнить динамический sql. Полет фантазии также потребуется. Придется учиться.
18 янв 12, 20:10    [11928763]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Не знаю DB2. Но в случае скуля практически почти ничего переписывать не надо.
Создаются VIEW на все таблы по соответствующему мапингу таблиц и колонок. Скуль автоматом запросы пострит (и для INSERT/UPDATE/DELETE).
Разве что для TRUNCATE останется заменить. Тупо реплейсом.
18 янв 12, 22:57    [11929328]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Mnior
Создаются VIEW
Если имена колонок совпадают, то ещё проще - SYNONYM-ы.

Когда вам говорят что-то сделать, не тупите, не понимайте это всё буквально.
Хотя что с баб требовать ...
18 янв 12, 23:03    [11929361]     Ответить | Цитировать Сообщить модератору
 Re: автоматизировать перезапись процедур с SQL Server на DB2  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
С другой стороны такой говнокод обязан умереть.
Не обижайтесь.
Из гуманных соображений.
18 янв 12, 23:12    [11929389]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить