Недавно начал работать с PG (v15)
Если вызываю в DBeaver :
select pgv_set_int('mypackage','v1',1);
select pgv_get_int('mypackage','v1');
то все работает.
попытка вызвать установку переменной через jdbc приводит к ошибке:
org.postgresql.util.PSQLException: ERROR: function pgv_get_int(character varying, character varying) does not exist
Подсказка: No function matches the given name and argument types. You might need to add explicit type casts.
public class LoaderDbHelper {
public static void setGlobalInteger_test(Connection cn,String group, String varName, Integer value) throws SQLException {
String sql = "select pgv_set_int(?,?,?)";
PreparedStatement cs = null;
try{
cs = cn.prepareStatement(sql);
cs.setString(1,group);
cs.setString(2,varName);
cs.setInt(3,value);
cs.execute();
}finally {
DBHelper.release(cs);
}
}
public static Integer getGlobalInteger_test(Connection cn,String group, String varName) throws SQLException {
String sql = "select pgv_get_int(?,?)";
PreparedStatement cs = null;
ResultSet rs = null;
Integer reVal = null;
try{
cs = cn.prepareStatement(sql);
cs.setString(1,group);
cs.setString(2,varName);
rs = cs.executeQuery();
if (rs.next()) {
reVal = DBHelper.RS_GetInteger(rs,1);
}
}finally {
DBHelper.release(rs);
DBHelper.release(cs);
}
return reVal;
}
//-----------------------------------------------
public static void main(String[] args) {
try {
Connection cn = ConnectionHelper.getConnect();
LoaderDbHelper.setGlobalInteger_test(cn,"test","v1",100);
Integer ret = LoaderDbHelper.getGlobalInteger_test(cn, "test", "v1");
System.out.println(ret);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Вопрос: как правильно вызвать ? Либо "в чем засада ?"