Java MS SQL Выбрать внутри Вставить - PullRequest
0 голосов
/ 19 марта 2019

Я хочу вставить 5 данных в одну таблицу SQL, последние четыре из которых уже работают и нормально, но первая должна быть из другой таблицы, String, давая Int для таблицы, в которую я ее вставляю. И это мое решение до сих пор. Однако я все еще получаю ошибку: «Индекс 5 находится вне диапазона».

PreparedStatement stmt = connection.prepareStatement("INSERT INTO RECORDS (LocationId, RecId, RecValues, YearTime, HourTime) VALUES " +
                "((SELECT LocationId from Locations where Location_name = 'Mic HR1'), ?, ?, ?, ?)");
        stmt.setInt(1,1);
        stmt.setInt(2, recid);
        stmt.setInt(3, inputData);
        stmt.setDate(4, sqlDate);
        stmt.setTime(5, Time.valueOf(dtf.format(now)));
        stmt.executeUpdate();

1 Ответ

1 голос
/ 19 марта 2019

На самом деле у вас есть только четыре параметра, определенных в вашем запросе, потому что LocationId рассчитывается внутренним выбором, который вы указали. Вот почему вы получаете ошибку.

Попробуйте это:

PreparedStatement stmt = connection.prepareStatement("INSERT INTO RECORDS (LocationId, RecId, RecValues, YearTime, HourTime) VALUES " +
                "((SELECT LocationId from Locations where Location_name = 'Mic HR1'), ?, ?, ?, ?)");
        stmt.setInt(1, recid);
        stmt.setInt(2, inputData);
        stmt.setDate(3, sqlDate);
        stmt.setTime(4, Time.valueOf(dtf.format(now)));
        stmt.executeUpdate();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...