powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Перехват событий в табличной SQL-функции?
25 сообщений из 29, страница 1 из 2
Перехват событий в табличной SQL-функции?
    #35504473
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не пойму возможно ли такое?
Например, есть табличная SQL-функция... В ней используется какая-нибудь таблица... Например нужно сделать так, что если таблицы нет, то перехватывать это событие и как-нибудь подменять таблицу... Что-то в этом роде... Можно реализовать?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35504909
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала, попробуйте-ка удалить эту таблицу! ;-)
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35505019
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может я пример неудачный привел... В моем случае - эта таблица c federated server'а... Я хочу отловить событие, если вдруг связь пропадет....
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35507211
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все еще никак не разберусь
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35507663
xze32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет такое реализовать в виде SQL-PL не получиться... Можно попробовать создать на C
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35507838
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да уж... видимо придется на С писать.... тоже к такому выводу пришел
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35555263
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ахтунг... Написал на C табличную функцию для federated таблицы... Получил в ответ SQL20136N...
Версия DB2 v.8.1.9 LUW....
И как дальше жить? С какого фикса подержка federated в external routine началась? Или не начиналась вовсе? Кто-нибудь знает?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35555936
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTАхтунг... Написал на C табличную функцию для federated таблицы... Получил в ответ SQL20136N...
Версия DB2 v.8.1.9 LUW....
И как дальше жить? С какого фикса подержка federated в external routine началась? Или не начиналась вовсе? Кто-нибудь знает? Не начиналась .
Вы только счеты с жизнью не сводите :)
Давайте поговорим об этом:
Что у вас за задача, такая, что надо обязательно табличную функцию использовать, а не процедуру, например?
Что это за логика - подменять федеративную таблицу, если она не доступна?
Опишите схематично задачу.
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35555995
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача сводится к следующему...
Есть оперативный сервер, с которым работают пользователи и есть отдельный сервер с архивной информацией... Примерно раз в квартал для анализа необходимо данные с этого сервера подгружать в оперативный режим.... Вот решил организовать все следующим образом на уровне view.... То есть создать табличную функциюЮ, которая данные достает из federated таблиц, а в случае недоступности оного возвращает пустой набор... Чтобы за зря пользователи не "шевелили" архивные данные.. Вот такая идея... Причем принципиален именно вариант с view, это уже особенности "нашего" ПО.... Может как-то с другой стороны посоветуете подойти?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556064
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTЗадача сводится к следующему...Я правильно понял, что из-за особенностей вашего софта:
1. вы должны загружать данные из федеративных таблиц только с помощью view
2. получение ошибки при таком процессе недопустимо
3. получение пустого набора вместо ошибки допустимо
?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556067
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то никак не соображу.... Можно ли в табличной С-функции вызвать ХП, которая возвращает RESULT SET и как-нибудь его возвратить из этой табличной функции?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556086
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark Barinstein, совершенно верно....
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556127
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTМожно ли в табличной С-функции вызвать ХП, которая возвращает RESULT SET и как-нибудь его возвратить из этой табличной функции?Можно, но, скорее всего, вы получите ту же ошибку.
А что именно должна табличная функция возвращать?
Какой набор данных?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556149
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В смысле какой набор данных? Она должна возвращать некий RESULT SET, как и любая другая табличная функция.... В наборе содержится примерно 10 столбцов....
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556168
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По количеству записей в наборе ограничений быть не должно... А если их во временную таблицу вытягивать, а потом уже оттуда возвращать?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556509
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не важно.
Похоже, что из любой функции нельзя иметь доступ к фед. таблице.
Т.е. при данных ограничениях вы не сможете реализовать свою задачу.
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556517
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
очень жаль....
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35556547
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Правда, если вы знакомы с программированием табличных java-функций, то можно использовать возможности jdbc type 4 драйвера.
Минус в том, что:
- при каждом таком вызове этой функции будет устанавливаться соединение с указанием имени пользователя и пароля и в конце - разрыв соединения
- естественно, что через это соединение нельзя иметь доступ к локальным таблицам
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35557159
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все понятно... доступ к локальным таблицам очень необходим....
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35557437
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Перехват событий в табличной SQL-функции?
    #35557473
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mark, сейчас наверное глупость спрошу.... А на С функцию GETREMOTERS нельзя организовать?
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35557620
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TORTMark, сейчас наверное глупость спрошу.... А на С функцию GETREMOTERS нельзя организовать?Нет.
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35557731
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark Barinstein TORTMark, сейчас наверное глупость спрошу.... А на С функцию GETREMOTERS нельзя организовать?Нет.Правильнее с моей стороны сказать - не знаю, не пробовал...
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35557945
TORT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сижу как раз "пробованием" и занимаюсь :(
...
Рейтинг: 0 / 0
Перехват событий в табличной SQL-функции?
    #35558695
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mark BarinsteinПравильнее с моей стороны сказать - не знаю, не пробовал...Я в том смысле, что есть такие Restrictions on external routines .
Там сказано, что в них нельзя устанавливать новые соединения.
И я не знаю, возможно ли в С (т.е. линкуясь с cli или odbc библиотеками) обойти это ограничение...
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Перехват событий в табличной SQL-функции?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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