Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Перехват событий в табличной SQL-функции? / 25 сообщений из 29, страница 1 из 2
25.08.2008, 14:12
    #35504473
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Что-то не пойму возможно ли такое?
Например, есть табличная SQL-функция... В ней используется какая-нибудь таблица... Например нужно сделать так, что если таблицы нет, то перехватывать это событие и как-нибудь подменять таблицу... Что-то в этом роде... Можно реализовать?
...
Рейтинг: 0 / 0
25.08.2008, 17:02
    #35504909
Victor Metelitsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Для начала, попробуйте-ка удалить эту таблицу! ;-)
...
Рейтинг: 0 / 0
25.08.2008, 17:48
    #35505019
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Может я пример неудачный привел... В моем случае - эта таблица c federated server'а... Я хочу отловить событие, если вдруг связь пропадет....
...
Рейтинг: 0 / 0
26.08.2008, 18:24
    #35507211
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
все еще никак не разберусь
...
Рейтинг: 0 / 0
27.08.2008, 08:01
    #35507663
xze32
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Нет такое реализовать в виде SQL-PL не получиться... Можно попробовать создать на C
...
Рейтинг: 0 / 0
27.08.2008, 10:26
    #35507838
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
да уж... видимо придется на С писать.... тоже к такому выводу пришел
...
Рейтинг: 0 / 0
23.09.2008, 19:05
    #35555263
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Ахтунг... Написал на C табличную функцию для federated таблицы... Получил в ответ SQL20136N...
Версия DB2 v.8.1.9 LUW....
И как дальше жить? С какого фикса подержка federated в external routine началась? Или не начиналась вовсе? Кто-нибудь знает?
...
Рейтинг: 0 / 0
24.09.2008, 09:59
    #35555936
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
TORTАхтунг... Написал на C табличную функцию для federated таблицы... Получил в ответ SQL20136N...
Версия DB2 v.8.1.9 LUW....
И как дальше жить? С какого фикса подержка federated в external routine началась? Или не начиналась вовсе? Кто-нибудь знает? Не начиналась .
Вы только счеты с жизнью не сводите :)
Давайте поговорим об этом:
Что у вас за задача, такая, что надо обязательно табличную функцию использовать, а не процедуру, например?
Что это за логика - подменять федеративную таблицу, если она не доступна?
Опишите схематично задачу.
...
Рейтинг: 0 / 0
24.09.2008, 10:26
    #35555995
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Задача сводится к следующему...
Есть оперативный сервер, с которым работают пользователи и есть отдельный сервер с архивной информацией... Примерно раз в квартал для анализа необходимо данные с этого сервера подгружать в оперативный режим.... Вот решил организовать все следующим образом на уровне view.... То есть создать табличную функциюЮ, которая данные достает из federated таблиц, а в случае недоступности оного возвращает пустой набор... Чтобы за зря пользователи не "шевелили" архивные данные.. Вот такая идея... Причем принципиален именно вариант с view, это уже особенности "нашего" ПО.... Может как-то с другой стороны посоветуете подойти?
...
Рейтинг: 0 / 0
24.09.2008, 10:48
    #35556064
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
TORTЗадача сводится к следующему...Я правильно понял, что из-за особенностей вашего софта:
1. вы должны загружать данные из федеративных таблиц только с помощью view
2. получение ошибки при таком процессе недопустимо
3. получение пустого набора вместо ошибки допустимо
?
...
Рейтинг: 0 / 0
24.09.2008, 10:49
    #35556067
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Что-то никак не соображу.... Можно ли в табличной С-функции вызвать ХП, которая возвращает RESULT SET и как-нибудь его возвратить из этой табличной функции?
...
Рейтинг: 0 / 0
24.09.2008, 10:54
    #35556086
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Mark Barinstein, совершенно верно....
...
Рейтинг: 0 / 0
24.09.2008, 11:04
    #35556127
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
TORTМожно ли в табличной С-функции вызвать ХП, которая возвращает RESULT SET и как-нибудь его возвратить из этой табличной функции?Можно, но, скорее всего, вы получите ту же ошибку.
А что именно должна табличная функция возвращать?
Какой набор данных?
...
Рейтинг: 0 / 0
24.09.2008, 11:09
    #35556149
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
В смысле какой набор данных? Она должна возвращать некий RESULT SET, как и любая другая табличная функция.... В наборе содержится примерно 10 столбцов....
...
Рейтинг: 0 / 0
24.09.2008, 11:15
    #35556168
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
По количеству записей в наборе ограничений быть не должно... А если их во временную таблицу вытягивать, а потом уже оттуда возвращать?
...
Рейтинг: 0 / 0
24.09.2008, 12:45
    #35556509
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Не важно.
Похоже, что из любой функции нельзя иметь доступ к фед. таблице.
Т.е. при данных ограничениях вы не сможете реализовать свою задачу.
...
Рейтинг: 0 / 0
24.09.2008, 12:47
    #35556517
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
очень жаль....
...
Рейтинг: 0 / 0
24.09.2008, 12:55
    #35556547
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Правда, если вы знакомы с программированием табличных java-функций, то можно использовать возможности jdbc type 4 драйвера.
Минус в том, что:
- при каждом таком вызове этой функции будет устанавливаться соединение с указанием имени пользователя и пароля и в конце - разрыв соединения
- естественно, что через это соединение нельзя иметь доступ к локальным таблицам
...
Рейтинг: 0 / 0
24.09.2008, 15:22
    #35557159
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
все понятно... доступ к локальным таблицам очень необходим....
...
Рейтинг: 0 / 0
24.09.2008, 16:32
    #35557437
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
TORTвсе понятно... доступ к локальным таблицам очень необходим....Там решение может быть таким:
1. Пишется функция:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
CREATE FUNCTION	GETREMOTERS
(
  url		varchar( 512 )
, driver	varchar( 512 )
, username	varchar( 512 )
, password	varchar( 512 )
, stmt		varchar( 512 )
) 
RETURNS TABLE (col1 ..., ..., colN ...)
LANGUAGE java ... PARAMETER STYLE db2general;
2. Использовать ее можно будет так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT T.col1, ..., T.colN, ... 
FROM TABLE(GETREMOTERS(
  'jdbc:sqlserver://localhost:1433;databaseName=TEST'
, 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
, 'username', 'password'
, 'select c1, ..., cN from ....'
)
) T, <list_of_local_tables>
where <here you can use references to columns of T>
Табличная функция выполняет соединение с удаленной базой, шлет запрос в нее, получает соотв. result set.
Этот result set вы можете использовать в локальных соединениях с другими таблицами.
...
Рейтинг: 0 / 0
24.09.2008, 16:39
    #35557473
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Mark, сейчас наверное глупость спрошу.... А на С функцию GETREMOTERS нельзя организовать?
...
Рейтинг: 0 / 0
24.09.2008, 17:17
    #35557620
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
TORTMark, сейчас наверное глупость спрошу.... А на С функцию GETREMOTERS нельзя организовать?Нет.
...
Рейтинг: 0 / 0
24.09.2008, 17:43
    #35557731
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Mark Barinstein TORTMark, сейчас наверное глупость спрошу.... А на С функцию GETREMOTERS нельзя организовать?Нет.Правильнее с моей стороны сказать - не знаю, не пробовал...
...
Рейтинг: 0 / 0
24.09.2008, 18:43
    #35557945
TORT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Вот сижу как раз "пробованием" и занимаюсь :(
...
Рейтинг: 0 / 0
25.09.2008, 10:27
    #35558695
Mark Barinstein
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Перехват событий в табличной SQL-функции?
Mark BarinsteinПравильнее с моей стороны сказать - не знаю, не пробовал...Я в том смысле, что есть такие Restrictions on external routines .
Там сказано, что в них нельзя устанавливать новые соединения.
И я не знаю, возможно ли в С (т.е. линкуясь с cli или odbc библиотеками) обойти это ограничение...
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Перехват событий в табличной SQL-функции? / 25 сообщений из 29, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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