#sql-server #oracle #openquery
#sql-server #Oracle #openquery
Вопрос:
Я пытаюсь создать скалярную функцию SQL Server, которая вызывает функцию Oracle.
Представьте, что у вас есть функция в Oracle с именем «Stock_Orcl», которая возвращает запас для продукта, переданного в параметре, и вам нужна функция SQL server (с именем «Stock_sql»), которая вызывает функцию Oracle выше «Stock_Orcl».
Чтобы усложнить задачу, я не хочу создавать функцию CLR.
После слишком долгих поисков и копаний я осмелюсь сказать, что считаю это невозможным. Я успешно создал процедуру SQL server.
Кажется невозможным превратить ее в функцию по 2 основным причинам:
- Функции SQL server не могут вызывать процедуры, содержащие инструкцию exec
- Функции SQL server не могут содержать динамический оператор openquery
У кого-нибудь есть опыт работы с этим?
Ответ №1:
Обе найденные вами вещи верны. Функции SQL Server не могут вызывать ничего, что могло бы выполнить обновление или вставку, например, динамический SQL или открытый набор строк в целевой базе данных. Обойти это невозможно. Вы пробовали использовать хранимую процедуру SQL Server вместо этого?
Комментарии:
1. Мне нужна функция. Я хочу использовать ее в операторе select . Proc работает нормально….