Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Линк к MS SQL. Как получить данные из *параметризованной* tabled-функции SQL Server'a ?  [new]
Кентурион Крысобой
Member

Откуда:
Сообщений: 202
Здравствуйте.

Вопрос к тем, кто имеет опыт извлечения данных из MS SQL.

Дано: работающий линк к некоторой MS SQL-базе, в которой имеются т.н. table-valued функции с входными параметрами.
Пример такой функции в синтаксисе TSQL:
if (select object_id('zzz_f01')) is not null drop function zzz_f01
go
create function zzz_f01(@a_num varchar(20))
returns @t table(kls_id numeric(9,0), kls_name varchar(60), kls_num varchar(20), priznak int)
as begin
	insert @t
	select kls_id, kls_name, kls_num, priznak
	from holding.dbo.clients_table_num 
	where kls_num = @a_num
return
end
go

Пример её вызова из среды SSMS:
select * from zzz_f01('100'); 
select * from zzz_f01('95')
Увы, но не получается обратиться к этой функции со стороны Oracle: ora-00942, т.е. ему требуется наличие соот-щей ТАБЛИЦЫ или ВЬЮХИ.

Можно ли как-то обойти эту проблему ? я бы мог, конечно, вьюху создать, если бы параметров не было... :-(
2 авг 12, 17:57    [12954548]     Ответить | Цитировать Сообщить модератору
 Re: Линк к MS SQL. Как получить данные из *параметризованной* tabled-функции SQL Server'a ?  [new]
dba123
Member

Откуда:
Сообщений: 1054
Кентурион Крысобой,
а если исполнить через DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE?
declare
   i binary_integer;
begin
  i:=DBMS_HS_PASSTHROUGH.EXECUTE_IMMEDIATE@ssms('select * from zzz_f01(''100'')');
end;
/
3 авг 12, 14:37    [12958785]     Ответить | Цитировать Сообщить модератору
 Re: Линк к MS SQL. Как получить данные из *параметризованной* tabled-функции SQL Server'a ?  [new]
Кентурион Крысобой
Member

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

да, именно так и получилось.
Если будет время, накатаю сюда пример для памятки - может, кому-то когда-нибудь пригодится (включая меня, склеротика :))
3 авг 12, 17:46    [12960174]     Ответить | Цитировать Сообщить модератору
 Re: Линк к MS SQL. Как получить данные из *параметризованной* tabled-функции SQL Server'a ?  [new]
Кентурион Крысобой
Member

Откуда:
Сообщений: 202
Кентурион Крысобой
да, именно так и получилось.
ЗЫ. "именно так" - в смысле, с помощью именно этого пакета, но только через другие его методы: open_cursor, bind_variable и fetch_row.
3 авг 12, 17:49    [12960201]     Ответить | Цитировать Сообщить модератору
 Re: Линк к MS SQL. Как получить данные из *параметризованной* tabled-функции SQL Server'a ?  [new]
Pablo_Puerta
Guest
Кентурион Крысобой,

Если будет время, накатаю сюда пример для памятки - может, кому-то когда-нибудь пригодится (включая меня, склеротика :))


Это время настало и ваш пример может пригодиться .. не могли бы вы его "накатать" ?? Заранее большое спасибо.
17 авг 12, 11:28    [13025244]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить