Postgresql jdb c executeUpdate () или getUpdateCount () возвращает затронутую строку - PullRequest
2 голосов
/ 02 августа 2020

JDB C executeUpdate () и getUpdateCount () должны возвращать номер затронутой строки. Следующий код java вызывает хранимую процедуру MySql, а переменной «r c» присваивается значение «1», что означает, что была вставлена ​​1 строка:

CallableStatement stmt = conn.prepareCall("{call insertData(?)}");
stmt.setInt(1, i);
int rc = stmt.executeUpdate(); // returns 1
rc = stmt.getUpdateCount(); // returns 1

вызывается хранимая процедура MySql:

CREATE PROCEDURE insertData(IN i INT)
BEGIN
INSERT INTO table_name(column_name) VALUES(i);
END //

Все работает как положено. Теперь нужно, чтобы аналогичный код Java работал с функцией или процедурой PostgreSql и заставлял executeUpdate () или getUpdateCount () действовать так же и возвращать затронутую строку. Новая строка вставляется в таблицу Postgresql, но executeUpdate () или getUpdateCount () всегда возвращают 0.

create procedure insertData(i integer) as $$
begin
INSERT INTO table_name(column_name) VALUES(i);
end; $$ language plpgsql;

Как заставить executeUpdate () или getUpdateCount () возвращать затронутую строку при вызове Postgresql функция или процедура?

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