JDBI PostgreSQL:从 PSQL 调用获取函数结果
JDBI PostgreSQL: Get result of function from PSQL Call
我有一个简单的 PSQL 脚本
CREATE OR REPLACE FUNCTION foo(bar text) RETURNS text AS $$
BEGIN
--some stuff
RETURN bar;
END;
$$
LANGUAGE 'plpgsql';
我想提取
的返回语句
SELECT foo('hi') as result;
在 Java 中进入我的 JDBI 程序。
所以目前我有这个,
public String test() {
Handle h = dbi.open();
try {
OutParameters ret = h.createCall("SELECT foo('hi') as result;").invoke();
return ret.getString("result");
} finally {
h.close();
}
}
但我经常遇到
Exception 'Parameter result does not exist'
从 JDBI 获取 PSQL 函数调用结果的正确方法是什么?
http://jdbi.org/#_stored_procedure_calls
看起来 JDBC 有自己的输出参数格式
OutParameters result = handle
.createCall("{:sum = call add(:a, :b)}")
.bind("a", 13)
.bind("b", 9)
.registerOutParameter("sum", Types.INTEGER)
.invoke();
我有一个简单的 PSQL 脚本
CREATE OR REPLACE FUNCTION foo(bar text) RETURNS text AS $$
BEGIN
--some stuff
RETURN bar;
END;
$$
LANGUAGE 'plpgsql';
我想提取
的返回语句SELECT foo('hi') as result;
在 Java 中进入我的 JDBI 程序。
所以目前我有这个,
public String test() {
Handle h = dbi.open();
try {
OutParameters ret = h.createCall("SELECT foo('hi') as result;").invoke();
return ret.getString("result");
} finally {
h.close();
}
}
但我经常遇到
Exception 'Parameter result does not exist'
从 JDBI 获取 PSQL 函数调用结果的正确方法是什么?
http://jdbi.org/#_stored_procedure_calls
看起来 JDBC 有自己的输出参数格式
OutParameters result = handle
.createCall("{:sum = call add(:a, :b)}")
.bind("a", 13)
.bind("b", 9)
.registerOutParameter("sum", Types.INTEGER)
.invoke();