如何从匿名 PL/pgSQL 块返回结果?

5 java sql postgresql hibernate

我使用的 PostgreSQL 版本是 9.3。

我编写了包含以下块的代码:

String queryString = "do $$\n"
+ "<< outerblock >>\n" 
+ "DECLARE\n"
    + "table_name varchar DEFAULT 'partner.partner_statistic';\n"
+ "BEGIN\n"
+    "EXECUTE 'SELECT * FROM ' || table_name;\n"
+ "END;\n"
+ "$$ LANGUAGE plpgsql; \n";
Query query = getSession().createSQLQuery(queryString);
List l = query.list();
Run Code Online (Sandbox Code Playgroud)

在调试器中,我收到以下消息:

[org.hibernate.util.JDBCExceptionReporter.logExceptions(JDBCExceptionReporter.java:78)] :查询未返回任何结果。

在线上

List l = criteria.list();
Run Code Online (Sandbox Code Playgroud)

如何重写查询以返回实际结果?

Dan*_*ité 7

根据文档,DO 语句不能返回任何内容:

代码块被视为没有参数的函数体,返回 void

如果 DO 中的代码旨在生成行,您可以将它们放入临时表中,并让客户端从该表中进行 SELECT。