Мой SQL-запрос состоит из 5 частей, которые тесно связаны друг с другом. Первая часть создает временную таблицу, вторая часть использует эту временную таблицу и создает другую временную таблицу, третья часть использует временную таблицу, созданную во второй части, и снова создает другую временную таблицу. А 4-я часть выбирает некоторые данные из 3-й временной таблицы, а 5-я часть выбирает счет 3-й временной таблицы.
Так как временные таблицы могут использоваться только в prepareStatement (я имею в виду, что временная таблица, созданная подготовленным состоянием, не может быть использована из другого подготовленного состояния, я пробовал это делать до того, как все будет в порядке), я должен сделать это в операторе подготовки .
Таким образом, первая 3-я часть создает временные таблицы, поэтому после установки параметров в readyStatement я запускаю preparedStatement.execute()
3 раза (я тоже пробовал 1 .... x раз), а затем я запускаю prepareStatement.execute (), но он возвращает false, что означает, что нет никакого набора результатов. Это почему?
PreparedStatement preparedStatement = conn.prepareStatement("select * into #tmp from tablex where ...\n" +
" select * into #tmp2 from #tmp where ...\n" +
" select * into #tmp3 from #tmp2 where ...\n" +
" select * from #tmp3\n" +
" select count(*) from #tmp3");
Выше я добавил простую иллюстрацию. Здесь мне нужно получить результат 4-го и 5-го запроса с подготовленным оператором. Как я могу это сделать?