【问题标题】:Result set in postgresql stored procedure llike javapostgresql 存储过程中的结果集,如 java
【发布时间】:2013-06-29 06:35:06
【问题描述】:

你好,有什么方法可以在 postgresql 存储过程中执行以下 java 代码

String sqlQuery = "SELECT uid, name, duration from EVENTS";

    ResultSet rs = stmt.executeQuery(sqlQuery);

    while (rs.next()) {
       String name = rs.getString(2);
     }

我在 postgresql 存储过程中也需要同样的东西?

【问题讨论】:

  • 您的 Java 代码是做什么的?它只是滚动通过结果集(如我所见)。你想对每条记录做点什么吗?

标签: java postgresql stored-procedures cursor fetch


【解决方案1】:

根据PL/PgSQL documentation,您在查询上使用LOOP

DO
$$
DECLARE
    myresult record;
BEGIN
    FOR myresult IN SELECT uid, name, duration FROM events
    LOOP
        RAISE NOTICE 'Name is %',myresult.name;
    END LOOP;
END;
$$ LANGUAGE plpgsql;

但是,使用循环通常表明您没有正确使用 SQL。很有可能正确使用WITH 查询(通用表表达式)并稍加思考,就会得到一个通常会执行得更好的纯 SQL 解决方案。

以后,请提供您的 PostgreSQL 版本并解释一下您实际想要完成的工作。您显示的代码完全没用,它什么也没做。所以这显然不是你真正想做的,但你什么也没告诉我们。你认为你需要的解决方案(比如循环)往往不是你真正需要的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-18
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多