Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2, MQT и собственная функция / 2 сообщений из 2, страница 1 из 1
22.02.2008, 11:06
    #35149799
Alexei Zaycev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2, MQT и собственная функция
есть собственные функции. условно:

CREATE FUNCTION FA()
RETURNS VARCHAR(10)
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN
RETURN '@';
END

CREATE FUNCTION FB(s1 VARCHAR(10),s2 VARCHAR(10))
RETURNS VARCHAR(30)
NO EXTERNAL ACTION
DETERMINISTIC
BEGIN
RETURN s1 || FA() || s2;
END

и пытаюсь создать MQT на базе 2 таблиц (id - primary key у обоих)
CREATE TABLE MQT_TEST
AS (
SELECT T1.id,T2.id,FB(T1.s,T2.s)
FROM T1,T2)
DATA INITIALLY DEFERRED REFRESH DEFERRED

валится с руганью:
4 Полная выборка не должна содержать ссылок на столбцы, выражения
или функции, которые:
* зависят от физических характеристик данных, например,
DBPARTITIONNUM, HASHEDVALUE, RID_BIT, RID
* зависят от изменений данных, например, выражения изменения
строк или столбец отметки времени изменения строки
* определены с условием EXTERNAL ACTION
* определены с условием LANGUAGE SQL, CONTAINS SQL, READS SQL
DATA или MODIFIES SQL DATA

вопрос - как мне объявить свои функции чтоб их можно было использовать с MQT

ЗЫ. знаю что запрос в MQT странный, но хотелось бы такую табличку заранее просчитанную иметь - сильно облегчило бы жизнь и подняло скорость - данные в ней меняются не часто, но их очень много и реальный вариант FB "на лету" работает медленновато. чтоб тягать значения прямо из нее когда надо.

Если жизнь так коротка, какой смысл куда-то спешить?!
...
Рейтинг: 0 / 0
22.02.2008, 12:02
    #35150026
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB2, MQT и собственная функция
Alexei Zaycevвопрос - как мне объявить свои функции чтоб их можно было использовать с MQTВ доке сказано, что нельзя создать mqt с:
Код: plaintext
1.
2.
3.
4.
5.
6.
    * Functions that have any of the following attributes:
          o EXTERNAL ACTION
          o LANGUAGE SQL
          o CONTAINS SQL
          o READS SQL DATA
          o MODIFIES SQL DATA
Т.е., если хотите функцию в mqt, создайте ее с LANGUAGE C или JAVA, а не SQL.
Причем с опциями NO EXTERNAL ACTION NO SQL.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / DB2, MQT и собственная функция / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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