Я пишу хранимую процедуру (SQL / PL - DB2 V11 или новее), и мне нужно получить доступ к SYSIBM.SYSCOLUMNS, чтобы получить столбцы таблицы 'HELLO_WORLD'.
В SYSIBM.SYSCOLUMNSтаблица 'HELLO_WORLD' присутствует с другим TBCREATOR.
TBCREATOR | TBNAME | NAME
OWN_SV | HELLO_WORD | COLN1
OWN_SV | HELLO_WORD | COLN2
OWN_SV | HELLO_WORD | COLN3
OWN_CL | HELLO_WORD | COLN1
OWN_CL | HELLO_WORD | COLN2
OWN_CL | HELLO_WORD | COLNA
Я не буду использовать инструкцию DISTINCT, потому что столбцы могут отличаться.Я думал, что буду использовать значение в специальном регистре CURRENT_SCHEMA, но, к сожалению, это не правильно.
Пример:
SELECT C.NAME, C.COLNO
FROM SYSIBM.SYSCOLUMNS C
WHERE C.TBCREATOR = CURRENT_SCHEMA
AND C.TBNAME = 'HELLO_WORLD'
ORDER OF C.COLNO
Значение, присутствующее в CURRENT_SCHEMA, неверно: если хранимая процедура вызываетсядругой процесс (например, процесс COBOL) CURRENT_SCHEMA связан с процессом, который подтвердил вызов.
Процесс, который вызывает мою хранимую процедуру "settings" CURRENT_SCHEMA со значением "USERBTC" (который является пользователем, которыйвыполнил процесс COBOL через JCL)
Мой OWNER / TBCREATOR - "OWN_CL", и это значение указано в параметрах связывания (точнее, в параметре "QUALIFIER")
Чтобы быть уверенным вчтобы правильно составить таблицу, я должен использовать КВАЛИФЕР (ИЛИ ВЛАДЕЛЕЦ), указанный в опциях BIND.
Возможно?Есть ли у вас какие-либо предложения?