java - postgresql存储过程中的结果集就像java一样

标签 java postgresql stored-procedures cursor fetch

嗨,有没有办法在 postgresql 存储过程中执行以下 java 代码

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

    ResultSet rs = stmt.executeQuery(sqlQuery);

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

我在 postgresql 存储过程中需要相同的吗?

最佳答案

根据 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 版本,并解释一下您实际想要完成的任务。您显示的代码完全无用,它什么也没做。所以这显然不是你真正想做的,但你却没有告诉我们任何相关信息。很多时候,您认为需要的解决方案(例如循环)并不是您真正需要的解决方案。

关于java - postgresql存储过程中的结果集就像java一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17377456/

相关文章:

java - EJB注入(inject)时出现空指针异常

cmd 中的 Java PID 没有改变

postgresql - 如何统计一个用户与多个表的连接数?

mysql - 如何在 DB2 中与其他 sql 一起运行脚本

java - JTable 标题的每一列的工具提示文本

java - 恢复以前序列化的 JFrame 对象,如何?

ruby-on-rails - PG::错误:错误:新编码(UTF8)不兼容

sql - 添加没有表锁的新列?

c# - 存储过程上的企业库缓存参数?

sql-server - 通过减少生成的唯一查询计划来优化动态 SQL 存储过程