我有一个PostgreSQL函数,可以将这些值(varchar、varchar、real、varchar)插入到表中,但我必须在javafx应用程序上执行它
在我的java程序中,m2是浮动的,但当我运行应用程序时,会收到以下错误消息: org.postgresql.util.PSQLException:错误:函数插入_属性(字符变化、字符变化、双精度、字符变化)不存在我有一个PostgreSQL函数,可以将这些值(varchar、varchar、real、varchar)插入到表中,但我必须在javafx应用程序上执行它,java,postgresql,Java,Postgresql,在我的java程序中,m2是浮动的,但当我运行应用程序时,会收到以下错误消息: org.postgresql.util.PSQLException:错误:函数插入_属性(字符变化、字符变化、双精度、字符变化)不存在 CREATE OR REPLACE FUNCTION insert_realties( character varying, character varying, real, character varying) RETURNS SETOF realties AS $BODY$ in
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
您需要向它传递与问题无关的参数名,但是为什么要从函数返回整个表呢?我希望函数返回新插入的行。如果Postgres
search\u路径设置不正确,则可能发生“不存在”错误。尝试使用符合条件的函数名架构进行查询。
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;
}
}
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