JDBC executeUpdate() y getUpdateCount() deberían devolver el número de fila afectado. El siguiente código Java llama a un procedimiento almacenado MySql y la variable "rc" se asigna a "1", lo que significa que se insertó 1 fila:
CallableStatement stmt = conn.prepareCall("{call insertData(?)}"); stmt.setInt(1, i); int rc = stmt.executeUpdate(); // returns 1 rc = stmt.getUpdateCount(); // returns 1el procedimiento almacenado MySql llamado:
CREATE PROCEDURE insertData(IN i INT) BEGIN INSERT INTO table_name(column_name) VALUES(i); END //Todo funciona como se esperaba. Ahora desea que el código Java similar funcione con una función o procedimiento de PostgreSql y haga que executeUpdate() o getUpdateCount() actúen de la misma manera y devuelvan la fila afectada. Se inserta una nueva fila en la tabla de Postgresql, pero executeUpdate() o getUpdateCount() siempre devuelven 0.
create procedure insertData(i integer) as $$ begin INSERT INTO table_name(column_name) VALUES(i); end; $$ language plpgsql;¿Cómo puedo hacer que executeUpdate() o getUpdateCount() devuelvan la fila afectada al llamar a una función o procedimiento de Postgresql?