DB2 - хранимая процедура с несколькими наборами результатов - PullRequest
0 голосов
/ 04 декабря 2018

Итак, сначала - я не уверен, что моя проблема связана с моим кодом DB2 или с моими настройками в DBeaver.

У меня проблема при запуске следующего кода, где используется только один результирующий наборотображается в DBeaver.Мое намерение состоит в том, чтобы создать одну процедуру, которая возвращает 2 набора результатов в пользовательский интерфейс.Цель этого состоит в том, чтобы я мог запустить несколько сценариев одновременно, а затем разместить все наборы результатов в одном месте.У меня нет другого программного обеспечения, кроме DBeaver, поэтому я не могу точно протестировать это в любой другой студии управления.

Я делаю это так, чтобы, если меня нет в офисе, кто-то еще моглегко запускать мои запросы.Дайте мне знать, если требуется дополнительная информация / у вас есть какие-либо вопросы.Имена таблиц / столбцов были составлены для вопроса.

CREATE PROCEDURE dbo.procedure_name (IN start_date date, IN end_date date) 
DYNAMIC RESULT SETS 2   
BEGIN

DECLARE C1 CURSOR WITH RETURN TO CALLER FOR
    SELECT 
        d.Student_NUM AS student_number,
        c.Teacher_NUM AS teacher_number,
    FROM dbo.c AS teachers
    INNER JOIN dbo.d AS student ON c.class_num= d.class_num;
    WHERE d.entry_date >= start_date and d.graduation_date < end_date


DECLARE C2 CURSOR WITH RETURN TO CALLER FOR
    SELECT 
        c.birth_date AS teacher_birth_date,
    FROM dbo.c AS teachers;

    OPEN C2;
    OPEN C1;   
END

Я получаю результаты только для C2

Если я переключу порядок OPEN, я получу только C1.Похоже, что он возвращает только первый OPEN курсор.

UPDATE

Это то, как хранимая процедура вызывается, и возвращаемый набор, который я вижу. ПРИМЕЧАНИЕ : имя возвращаемого набора отображается как C, и я знаю, что мне следует ожидать Result и Result-2.(извините за серьезное редактирование)

enter image description here

Версия DBeaver: 5.2.5

Версия DB2: 9.5 Fix Pack 5

ОС: Windows

Ответы [ 2 ]

0 голосов
/ 24 июля 2019

Просто чтобы прояснить, как говорят @mao и @ballBreaker, необходимо выполнить следующие шаги.

Нажмите правой кнопкой мыши на «Редактировать соединение».

Edit Connection

Перейдите в раздел «Настройки подключения» и нажмите «Изменить настройки драйвера» -> Adv.параметры -> «Драйвер поддерживает несколько результатов».

Edit Driver Settings Adv. parameters

0 голосов
/ 05 декабря 2018

Устранено Ballbreaker с изменением конфигурации dbeaver.

Этот симптом появится, только если ваше соединение с базой данных использует «старый» драйвер, поставляемый с dbeaver, под названием «DB2 LUW 8.x».Этот драйвер не устанавливается автоматически с текущими версиями dbeaver (но может быть загружен вручную), так как более новые драйверы устанавливаются по умолчанию с текущими версиями dbeaver.

Если ваше соединение с базой данных использует драйвер с именем "DB2 LUW"(в отличие от «DB2 LUW 8.x») этот симптом не возникнет.

Если ваше соединение использует старый драйвер (DB2 LUW 8.x), то в разделе Свойства соединения для базы данных естьтакое «Редактировать настройки драйвера» -> Adv.параметры -> «Драйвер поддерживает несколько результатов».В старом драйвере этот параметр был отключен по умолчанию, что вызвало симптом.В более новом драйвере такой настройки нет.

...