我需要有关如何使用 EclipseLink 检索 plsql 匿名变量值的指导。下面我留下一个示例查询。我知道我可以使用函数和存储过程,但是对数据库有限制。
DataReadQuery query = new DataReadQuery();
SQLCall sqlCall = new SQLCall();
StringBuilder plsql = new StringBuilder();
plsql.append("DECLARE ");
plsql.append("\n");
plsql.append("out_variable ");
plsql.append("foo.bar");
plsql.append(".");
plsql.append("number_field");
plsql.append("%TYPE;");
plsql.append("\n");
plsql.append("BEGIN ");
plsql.append("\n");
plsql.append("UPDATE ");
plsql.append("number_field");
plsql.append(" SET number_field = (number_field+1)");
plsql.append(" WHERE ");
plsql.append(" key_field = ");
plsql.append(Key);
plsql.append(" ");
plsql.append(" RETURNING ");
plsql.append(" number_field ");
plsql.append(" INTO ");
plsql.append(" out_variable ; ");
plsql.append("\n");
plsql.append("END; \n");
sqlCall.setQueryString(plsql.toString());
sqlCall.setQuery(query);
query.setCall(sqlCall);
Session session =
JpaHelper.getEntityManager(getEntityManager()).getActiveSession();
Object queryResult = session.executeQuery(query);