I have a PostgreSQL function that inserts into a table this values (varchar,varchar,real,varchar) but i have to execute it on a javafx app

Viewed 48
CREATE OR REPLACE FUNCTION insert_realties(
character varying,
character varying,
real,
character varying)
RETURNS SETOF realties AS
$BODY$
insert into realties values ($1,$2,$3,$4);
select * from realties
$BODY$
LANGUAGE sql VOLATILE

In my java programm m2 is float but when I run the app I get this error message: org.postgresql.util.PSQLException: ERROR: function insert_realties(character varying, character varying, double precision, character varying) does not exist

 public static boolean insertRealtie(String realtie_id, String address, float m2, String type) throws ClassNotFoundException,SQLException{

    try{
        Class.forName (driverClassName);
        dbConnection = DriverManager.getConnection (url, username, passwd);
        ps = dbConnection.prepareStatement("SELECT * FROM insert_realties(?,?,?,?)");
        ps.setString(1,realtie_id);
        ps.setString(2,address);
        ps.setFloat(3,m2);
        ps.setString(4,type);
        rs = ps.executeQuery();
        return true;

    }catch (SQLException e){
        e.printStackTrace();
        throw e;
    }catch (ClassNotFoundException e){
        e.printStackTrace();
        throw e;
    }

}
1 Answers
CREATE OR REPLACE FUNCTION insert_realties(
parameter1 varchar(100),
parameter2 varchar(100),
parameter3 integer,
parameter4 varchar(100))
RETURNS SETOF realties AS
$BODY$
insert into realties values ($1,$2,$3,$4);
select * from realties
$BODY$
LANGUAGE sql VOLATILE

you need to pass parameter names to it

Related