Вывод для DSPPGMREF некорректен для некоторых объектов SQL - PullRequest
1 голос
/ 08 июля 2019

Я использую DB2 i для написания функций и процедур SQL.CTE (Common Table Expressions) также используются внутри тела этих функций и процедур.

Эти члены SQL преобразуются в объекты с помощью команды RUNSQLSTM.

Но если я запускаю DSPPGMREF на этих объектах для просмотра ссылок на программы, он показывает CTE как упомянутый файл, тогда как это не фактический файл.

Тело моей функции:

НАЧАТЬ
С SAMCTE AS
(ВЫБРАТЬ COL1 ИЗ TABL1)
ВЫБРАТЬ COL1 В ABC ИЗ SAMCTE;
ВОЗВРАТИТЬ ABC;
END;

Здесь фактический файл, включенный в TABL1, но DSPPGMREF показывает TABL1 и SAMCTE как FILES, что неверно.

У меня есть несколько источников из клиента, в которых также используется CTE, но на их объектахCTE не отображаются в виде файла.Я не понимаю, что не так в моем примере.

1 Ответ

1 голос
/ 09 июля 2019

При создании объекта для процедуры и функции с использованием RUNSQLSTM убедитесь, что все объекты File / Table, которые используются в процедуре и функции, находятся в списке библиотек или квалифицированы.

Если их нет в списке библиотек, DSPPGMREF сообщит о некоторых неправильных ссылках FILE, так как в этом случае CTE сообщается как указанный файл.

...