Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Exec в функции  [new]
ALOTE
Member

Откуда:
Сообщений: 1729
Просьба не бить, я понимаю, что Exec в функции делать нельзя. Так же я понимаю что архитектуру придумывать нужно заранее, но архитектуру придумывал не я, теперь мучаюсь.
Дело в том, что я переношу движок с MS SQL на Oracle, поэтому функции нужно оставить функциями, а процедуры процедурами, иначе переписывать придется очень много, чего совсем не хочется.
Итак ситуация следующая. На прилинкованном в SQL ORACLE есть функция скажем fun_orc с рядом переменных. Раньше она была на MS SQL и вызывалась, как функция во множестве вьюх. Теперь если я ее вызываю из функции так
SELECT * from openquery(orc, 'fun_orc(n1,n2,n3)')

то проблем нет. Но мне нужно передавать в нее переменные из функции на MS SQL. А передавать переменные в качестве аргументов в openquery нельзя. Так как вызываю я это дело из функции загнать это дело в текстовую переменную, а потом сделать exec тоже нельзя. Поэтому получается замкнутый круг. Ни кто не сталкивался с такой проблемой? А то я ума не приложу что делать (((
5 авг 09, 15:43    [7501429]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
Glory
Member

Откуда:
Сообщений: 104760
ALOTE
А то я ума не приложу что делать (((

Менять идеологию
5 авг 09, 15:45    [7501462]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
ALOTE
Member

Откуда:
Сообщений: 1729
Glory,

К сожалению, идеолог не я.
5 авг 09, 15:50    [7501514]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36800
ALOTE
Glory,

К сожалению, идеолог не я.
Тогда дайте вашему идеололгу хелп почитать, чтобы выдумывал реализуемые идеологии.
5 авг 09, 15:51    [7501527]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
Glory
Member

Откуда:
Сообщений: 104760
ALOTE
Glory,

К сожалению, идеолог не я.

Тогда проект миграции можно закрывать. Потому что все равно придется переписывать или дописывать что-то. Как вариант свою dll/clr, которая будет получать нужные параметры, делать коннект к Oracle и выполнять нужные действия.
5 авг 09, 15:56    [7501555]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
ALOTE
Member

Откуда:
Сообщений: 1729
Гавриленко Сергей Алексеевич,
К сожалению, когда база создавалась не планировалось, что она будет перенесена на oracle, ныне выявилась такая необходимость и менять идеологию, уже поздно.
Может быть есть какое нибудь извращенное средство?
5 авг 09, 15:56    [7501556]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
ALOTE
Member

Откуда:
Сообщений: 1729
Glory,

Ну не все так печально ) Закрывать проект смысла нет. Формирование вызываемой функции я могу изменить на уровне интерфейса, и тогда проблем не будет. Писать там не много, но я несколько уперся в принцип - ибо задача интересная.
5 авг 09, 16:39    [7501888]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
Glory
Member

Откуда:
Сообщений: 104760
ALOTE
Glory,

Ну не все так печально ) Закрывать проект смысла нет. Формирование вызываемой функции я могу изменить на уровне интерфейса, и тогда проблем не будет. Писать там не много, но я несколько уперся в принцип - ибо задача интересная.

Какой нафиг принцип. Миграция - это не тупое перетаскивание кода один в один. Особенно между отличающимися по синтаксису и идеологии платформами. Особенно если изначально система не проектировалась под миграцию

Сообщение было отредактировано: 5 авг 09, 16:45
5 авг 09, 16:44    [7501925]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
ALOTE
Member

Откуда:
Сообщений: 1729
Glory,

Спасибо, капитан Очевидность ). Само собой в тупую код не перетащишь. Все функции, процедуры и вьюхи из MS SQL уже в ручную переписаны для Oracle и прекрасно там себя чувствуют. Просто сейчас MS SQL остался временным буфером между интерфейсом и новой БД, дабы юзеры могли работать, на новом сервере со старой мордой. Поэтому и актуальна проблема вызова всех этих объектов из MS SQL с минимальными изменениями кода.
5 авг 09, 16:53    [7501982]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
Glory
Member

Откуда:
Сообщений: 104760
ALOTE
Glory,

Спасибо, капитан Очевидность ). Само собой в тупую код не перетащишь. Все функции, процедуры и вьюхи из MS SQL уже в ручную переписаны для Oracle и прекрасно там себя чувствуют. Просто сейчас MS SQL остался временным буфером между интерфейсом и новой БД, дабы юзеры могли работать, на новом сервере со старой мордой. Поэтому и актуальна проблема вызова всех этих объектов из MS SQL с минимальными изменениями кода.

Ну так вперед, Капитан Нытик, переписывать исходный код. Уже целый час могли бы этим заниматься
5 авг 09, 16:55    [7501994]     Ответить | Цитировать Сообщить модератору
 Re: Exec в функции  [new]
ALOTE
Member

Откуда:
Сообщений: 1729
Glory

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

Я Вас обидел? Простите великодушно.
5 авг 09, 16:57    [7502005]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить