Вызов табличной функции DB2 из Excel - PullRequest
0 голосов
/ 28 ноября 2018

Я создал пользовательскую функцию определения таблицы в DB2, которая принимает два параметра и возвращает таблицу.

Вызов UDTVF из IBM i Access Client Solutions (Версия: 1.1.7.1 Build: 7290) >> Запуск сценариев SQL работает нормально, возвращая таблицу результатов:

-- SELECT *
-- FROM TABLE(<library>.<udtvf>(<param. 1>,<Param. 2>)) AS ResultsTable

SELECT *
FROM TABLE(DPLIB06.FISMOSLSWAR(1,2017)) AS ResultsTable

У меня определен ODBC DSN, указывающий на DB2.Этот DSN отлично работает как Data Connection в MS Excel, Crystal Reports и т. Д. И т. Д. И до этого момента работал нормально даже с некоторыми очень сложными запросами.

Когда я пытаюсь добавить вышеуказанный запросна лист Excel с помощью редактора запросов MS я получаю следующие предупреждения / сообщения об ошибках:

SQL Query can't be represented graphically. Continue anyway?

Ничего страшного в этом предупреждении: я всегда нажимаю OK и жизнь продолжается ...но потом я получаю

Could not add the table 'TABLE(DPLIB06.FISMOSLSWAR(1'.

Итак ... Может кто-нибудь дать мне синтаксис для вызова определяемой пользователем табличной функции DB2 (с двумя параметрами) из Microsoft Excel?

1 Ответ

0 голосов
/ 28 ноября 2018

Вот решение, которое работает:

С помощью MS Query Editor введите простой запрос:

SELECT 'A' FROM SYSIBM.SYSDUMMY1

Закройте редактор, возвращая результаты в ваш Excel

ИзExcel Данные >> Соединения В меню выберите Соединение и откройте его Свойства Definition замените текст Command запросом, который ссылается на UDTVF

...