Пытается запустить некоторый запрос для DB2, но не получить никаких результатов.Запуск запроса SQL sql
SELECT APPLICATION_ID,
CLIENT_WRKSTNNAME
FROM TABLE(MON_GET_CONNECTION(cast(NULL as bigint), -2)) AS t
WHERE APPLICATION_ID IN (SELECT ''''||APPLICATION_ID||''''
FROM SYSIBM.SYSDUMMY1)
Проблема заключается в подзапросе в предложении WHERE. Если я буду работать только
SELECT ''''||APPLICATION_ID||''''
FROM SYSIBM.SYSDUMMY1
часть и копировать/вставить результат в большой запрос - я хотел бы получить нужный результат. Результат суб-запроса выглядит так: '92.81.111.13.51632.13022516453'
, он должен быть String/varchar.
Что я делаю неправильно?
Это разные APPLICATION_ID здесь: 'SELECT '' '' || APPLICATION_ID || '' '' FROM SYSIBM.SYSDUMMY1', не t.APPLICATION_ID. Этот APPLICATION_ID из SYSIBM.SYSDUMMY1 (фиктивная таблица) и APPLICATION_ID выбирается из t. –
@udar_molota. , , Я не знаю, какую версию DB2 вы используете, но во всех версиях, о которых я знаю, эта таблица не имеет поля под названием «APPLICATION_ID» (см. Http://pic.dhe.ibm.com/infocenter/dzichelp /v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.sqlref%2Fsrc%2Ftpc%2Fdb2z_sysibmsysdummy1table.htm). Таким образом, запрос разрешит поле из внешней области, которое имеет псевдоним 't'. –
Ты почти прав. 'MON_GET_CONNECTION' - таблица FUNCTION, а SYSIBM.SYSDUMMY1 - фиктивная таблица. Я использую 9.7, правильный ответ для моего вопроса ниже. –