700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程

java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程

时间:2024-02-20 05:13:36

相关推荐

java 调用postgresql 函数_从Java调用PostgreSQL中的存储过程

我编写了一个我想用Java调用的存储过程。但我不认为它能够对我通过的查询做任何事情。以下是我的java代码:

String QUERY_LOCATION = "select (license_plate) as test from carInst( (select category_name from reservation where rid = ?) , (select lname from reservation where rid = ?))";

//PreparedStatement check_location = null;

PreparedStatement check_location = connection.prepareStatement(QUERY_LOCATION);

check_location.setInt(1, rid);

check_location.setInt(2, rid);

rs = check_location.executeQuery();

if (rs.next()) {

System.out.print("Car found: "+rs.getString("test")+"\n");

license_plate = rs.getString("test");

update_reservation.setString(5, license_plate);

bool = false;

} else {

System.out

.print("There is no car available\n");

}

以下是我用PL / pgSQL(PostgreSQL)编写的存储过程:

CREATE OR REPLACE FUNCTION carInst(cname varchar(20), loc varchar(20) )

RETURNS TABLE (license_plate varchar(6) ) AS $$

BEGIN

DECLARE cur CURSOR

FOR SELECT carinstance.license_plate, carmodel.category_name, carinstance.lname FROM carinstance,carmodel

WHERE carinstance.mid = carmodel.mid ;

BEGIN

FOR rec IN cur LOOP

RETURN QUERY SELECT distinct carinstance.license_plate FROM Carinstance

WHERE rec.category_name = cname

AND rec.lname = loc

AND rec.license_plate=carinstance.license_plate;

END LOOP;

END;

END;

$$ LANGUAGE plpgsql;

当我在Java中运行代码时,print语句为Car found打印一个空值。我真的很感激这里的一些帮助。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。