我正在开发一个应用程序,在某一点上,让java代码调用postgres存储过程(返回一串JSON)。
create or replace function get_nsx_all() returns text as
$$
begin
return array_to_json(array_agg("nguoi.nhaSanXuat")) from "nguoi.nhaSanXuat";
end
$$
LANGUAGE 'plpgsql';
但是,当我通过JDBC使用它来调用函数时:
public static void getAllNSX() throws SQLException
{
connection = DB.getConnection();
CallableStatement statement = connection.prepareCall("{ ? = call get_nsx_all() }");
statement.registerOutParameter(1, Types.VARCHAR);
statement.execute();
String x = statement.getString(1);
System.out.println(x);
}
我只得到了这个:
我想知道我做错了什么,如何将完整的JSON字符串添加到我的应用程序中。
谢谢!
答案 0 :(得分:0)
事实证明Postgresql没有任何问题,但由于我将所有字符串的数据类型设置为字符(255),这是一个255字符的固定大小的字符串,所有尾随空格都是255减去字符串长度。
感谢Laurenz,Andreas的投入。