Как получить все ResultSets из выписки из JDBC? - PullRequest
0 голосов
/ 25 февраля 2019

Я выполняю следующие запросы:

SELECT 1; CREATE TABLE ....; SELECT 2;

, после чего пытаюсь получить все resultSets.Для этого я использую следующий код:

while(!stmt.getMoreResults()) {
 stmt.getResultSet();
}

К сожалению, я получаю первый набор результатов jus.Скажите пожалуйста, что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы пытаетесь сказать, что Java просто не способна делать то, что .Net делает без помех?Это так просто?Независимо от того, какой тип фиктивных операторов находится между выборками в сценарии, который запускается как пакет, bool IDataReader.NextResult () в коде C # надежно возвращает следующий результат, перепрыгивая через следующие фиктивные операторы для Netezza, которые мы сейчас пытаемся отладить.В течение многих лет он делал то же самое для всех платформ, поддерживающих пакетные вызовы, на случай, если нам придется с ними справиться.enter image description here

0 голосов
/ 25 февраля 2019

Ваш второй оператор CREATE TABLE технически даже не возвращает набор результатов (хотя JDBC может вернуть количество записей, затронутых DML).Итак, если вы хотите получить концептуальное возвращаемое значение каждого оператора, вам нужно просто запустить их отдельно.

Если бы ваше второе утверждение было на самом деле SELECT, то, возможно, мы могли бы найти какой-нибудь способ объединитьзапросы вместе.

Прочитайте этот канонический ответ , чтобы увидеть, как обрабатывать случай, когда у вас действительно есть множественные выборки.Но обратите внимание, что не все базы данных поддерживают это (например, Oracle не поддерживает это).И прочитайте здесь , чтобы понять, почему несколько запросов в одном вызове JDBC могут быть даже плохими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...