Эквивалент AS/400 'SELECT 1'

Я пытаюсь помочь другу решить проблемы с подключением к AS/400. Он хочет выполнить запрос к AS/400, который всегда возвращает запись (аналогично SELECT 1 для MSSQL).

Он попытался запустить SELECT 1, но безуспешно... Я предполагаю, что AS/400 ожидает FROM TableName...

Может кто оказал помощь? Существует ли системная таблица/файл, который всегда существует и для которого он может запустить SELECT TOP 1 (или его эквивалент)? Я никогда не взаимодействовал с AS / 400, поэтому я немного не в своей тарелке ... надеялся, что SO может дать мне быстрый ответ ...

Заранее спасибо!


person cookbr    schedule 16.03.2010    source источник
comment
...но без везения... требует уточнения. Если проблема действительно связана с подключением, то SELECT 1 должно быть достаточно. DB2 на AS/400 возвратит ошибку, если соединение работает правильно. В противном случае ошибка будет исходить от одного из протоколов подключения.   -  person user2338816    schedule 24.03.2014


Ответы (2)


Я почти уверен, что на этих компьютерах работает DB2 (кстати, теперь они называются iSeries), так что вы можете указать:

select * from sysibm.sysdummy1

выстрел. Это должно вернуть один столбец IBMREQD со значением Y.

person paxdiablo    schedule 16.03.2010
comment
Я передам это дальше ... Будет ли допустимо «SELECT * FROM sysibm.sysdummy1 FETCH FIRST 1 ROW ONLY»? - person cookbr; 16.03.2010
comment
Этот синтаксис, безусловно, допустим для DB2/z и DB2/LUW, поэтому я предполагаю, что он будет работать и в iSeries. Но я не думаю, что это понадобится, SYSDUMMY1 имеет только одну строку. - person paxdiablo; 16.03.2010
comment
Ах, понятно :-) Я передам это, и мы посмотрим, как оно пойдет. Оцените ответ! - person cookbr; 16.03.2010
comment
И глядя на документы, «выборка первых n строк» ​​была добавлена ​​​​в 5.1 еще в 2001 году. - person paxdiablo; 16.03.2010
comment
См. publib.boulder.ibm.com/infocenter /iseries/v5r4/topic/db2/ и помните: publib-boulder содержит ОГРОМНОЕ количество онлайн-документов по всем продуктам IBM. Это должно быть первым пунктом, если вы используете замечательное программное обеспечение IBM :-) - person paxdiablo; 16.03.2010
comment
Только что попробовал этот SQL в ответе на реальной AS/400, и он работает. Нет необходимости ограничивать количество возвращаемых строк, так как он возвращает только одну строку как есть. - person Brian Showalter; 16.03.2010
comment
@paxdiablo Еще не получил ответа от моего друга, но я уверен, что то, что вы предоставили, сработает ... спасибо за ответ и ссылку! - person cookbr; 17.03.2010
comment
@Brian Showalter Спасибо за подтверждение! - person cookbr; 17.03.2010
comment
SELECT * FROM sysibm/sysdummy1 FETCH FIRST 1 ROW ONLY работает в STRSQL (примечание / вместо .) - person Thorbjørn Ravn Andersen; 16.08.2010
comment
(и на этой неделе они называются IBM i) - person Thorbjørn Ravn Andersen; 16.08.2010

Для этого также можно использовать таблицу QSQPTABL.

person Mohamed    schedule 17.02.2014
comment
Не могли бы вы пояснить, почему вы считаете QSQPTABL гораздо более подходящим? - person Buck Calabro; 18.02.2014
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. - person Code Maverick; 18.02.2014
comment
В этой таблице всего одна строка и один столбец. По той же причине, что sysibm.sysdummy1 актуальна, таблица, о которой я упоминал, также действительна. - person Mohamed; 06.07.2018
comment
@BuckCalabro Не могли бы вы отменить голосование против моего поста? пожалуйста - person Mohamed; 28.08.2018
comment
Не могли бы вы пояснить причины, по которым можно было бы использовать QSQPTABL вместо отраслевого стандарта? - person Buck Calabro; 30.08.2018
comment
Как определить, что является отраслевым стандартом. Я использую QSQPTABL уже более 15 лет. @BuckCalabro - person Mohamed; 31.08.2018
comment
Промышленный стандарт — это то, чем занимаются десятки тысяч людей. QSQPTABL — плохое решение, потому что это не документированный интерфейс. QSQPTABL — это внутренний механизм IBM для реализации нескольких различных целей; см. www-356.ibm.com/partnerworld/wps/servlet/download/, например. Поскольку QSQPTABL — это внутренний недокументированный интерфейс, IBM может изменить его в любое время, не сообщая нам об этом. - person Buck Calabro; 02.09.2018
comment
SYSDUMMY1 задокументирован во многих местах, не только для IBM i, но и для Db2 для z и LUW. Вот один из документов IBM i: ibm.com/developerworks/ibmi/library/ - person Buck Calabro; 02.09.2018