gpt4 book ai didi

postgresql - 从java调用postgres上的存储函数

转载 作者:行者123 更新时间:2023-11-29 12:31:29 36 4
gpt4 key购买 nike

我在我的 Postgres 数据库中创建了以下函数:

CREATE FUNCTION funct(arg1 type1, arg2 type2, ...) RETURNS void AS $$
BEGIN
--insert passed args in some tables
END

如何从 java 中调用此函数并正确传递参数?

最佳答案

如果您了解如何使用 JDBC 与 postgres 通信(如果不了解 this tutorial 应该可以帮助您加快速度),那么这个 JDBC page显示如何调用存储函数:

例如:

// Setup function to call.
Statement stmt = conn.createStatement();
stmt.execute("CREATE OR REPLACE FUNCTION refcursorfunc() RETURNS refcursor AS '"
+ " DECLARE "
+ " mycurs refcursor; "
+ " BEGIN "
+ " OPEN mycurs FOR SELECT 1 UNION SELECT 2; "
+ " RETURN mycurs; "
+ " END;' language plpgsql");
stmt.close();

// We must be inside a transaction for cursors to work.
conn.setAutoCommit(false);

// Procedure call.
CallableStatement proc = conn.prepareCall("{ ? = call refcursorfunc() }");
proc.registerOutParameter(1, Types.OTHER);
proc.execute();
ResultSet results = (ResultSet) proc.getObject(1);
while (results.next()) {
// do something with the results...
}
results.close();
proc.close();

在后一个链接中还讨论了其他类型的存储函数。

关于postgresql - 从java调用postgres上的存储函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435060/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com