Postgresql jdbc executeUpdate() or getUpdateCount() return affected row

Viewed 246

JDBC executeUpdate() and getUpdateCount() should return affected row number. Following java code calls a MySql stored procedure and variable "rc" is assigned to "1" which means 1 row was inserted:

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

the MySql stored procedure called:

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

Everything works as expected. Now want the similar Java code to work with a PostgreSql function or procedure and make executeUpdate() or getUpdateCount() act the same and return affected row. New row is inserted into Postgresql table but executeUpdate() or getUpdateCount() always return 0.

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

How can I make executeUpdate() or getUpdateCount() return affected row when calling a Postgresql function or procedure?

0 Answers
Related