Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Маппинг функции на федеративной базе. / 2 сообщений из 2, страница 1 из 1
29.01.2014, 11:23
    #38541730
acidmind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маппинг функции на федеративной базе.
Добрый день.
Подскажите пожалуйста, пытаюсь вызвать функцию из федиративной базы.
Связь с базой наладил, никнейм для пользователя создал..
Федеративная база - FDB
Рабочая база - RDB

На базе FDB создал функцию:
Код: sql
1.
2.
3.
4.
5.
CREATE FUNCTION DB2ADMIN.TEST1 (A BIGINT)
   RETURNS BIGINT
   DETERMINISTIC
   NO EXTERNAL ACTION
   RETURN select A from SYSIBM.SYSDUMMY1;



Вызываю
Код: sql
1.
VALUES(DB2ADMIN.TEST1(3));

выводит 3.

На RDB создаю шаблон функции с таким же именем
Код: sql
1.
2.
3.
4.
5.
   CREATE FUNCTION DB2ADMIN.TEST1 (A BIGINT)
   RETURNS BIGINT
   AS TEMPLATE
   DETERMINISTIC
   NO EXTERNAL ACTION;



После этого создаю маппинг
Код: sql
1.
2.
3.
CREATE FUNCTION MAPPING TEST1_M
  FOR DB2ADMIN.TEST1(BIGINT)
  SERVER FDB;



Всё ок. Вроде как должно работать. Но пытаясь вызвать функцию на RDB получаю ошибку:
Код: sql
1.
2.
3.
VALUES(DB2ADMIN.TEST1(7));

  SQL0142N  The SQL statement is not supported.
...
Рейтинг: 0 / 0
30.01.2014, 09:24
    #38543077
acidmind
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Маппинг функции на федеративной базе.
Разобрался с этим. Нужно создать никнейм на таблицу SYSIBM.SYSDUMMY1.
Код: sql
1.
CREATE NICKNAME DB2ADMIN.SYSDUMMY1 FOR FDB.SYSIBM.SYSDUMMY1;


И вызывать функцию следующим образом:
Код: sql
1.
SELECT DB2ADMIN.TEST1(35) FROM DB2ADMIN.SYSDUMMY1;
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Маппинг функции на федеративной базе. / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]