stored-procedures - pyodbc 从使用 DB2 的存储过程返回多个游标

标签 stored-procedures db2 pyodbc database-cursor

我有一个从 db2 数据库调用存储过程的 python 程序。我正在使用 results = cursor.fetchall()处理我的存储过程的结果。但是,我的存储过程返回两个游标。 results只包含第一个。我需要一种方法来循环遍历任意数量的游标。我希望fetchmany()将是我的答案,但事实并非如此。

我需要能够处理多个结果集,因为我正在编写的程序只能调用一个存储过程。返回并使其能够调用两个需要很多。除了这些东西之一,我需要让 10 个游标返回。一切都是动态的,因此应用程序不知道它正在运行什么程序,它只是获取数据并将其吐入excel而不知道其含义。我需要一个用于数据的游标,另一个用于不同类型的计数和总计的游标。

我正在寻找一个内置函数来做到这一点,或者甚至是一个不同的库,因为我已经完成了我的谷歌搜索,看起来 pyodbc 没有为 DB2 这样做。 DB2 是一个需求。

最佳答案

使用 nextset()光标方法:https://github.com/mkleehammer/pyodbc/wiki/Cursor#nextset

示例代码:

# fetch rows from first set
rows = cursor.fetchall()    
# process first set rows here

# advance to next result set
while (cursor.nextset()):    
    # fetch rows from next set, discarding first
    rows = cursor.fetchall()    
    # process next set rows here
nextset()将返回 True如果额外的结果集可用,并且后续的游标提取方法将从下一个集中返回行。该方法返回 None如果没有额外的套装可用。

关于stored-procedures - pyodbc 从使用 DB2 的存储过程返回多个游标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7263781/

相关文章:

c# - 带 Out 参数的 Oracle 存储过程

c# - 为什么我从存储过程中得到-1?

database - 如何将 postgresql 中的模式从本地服务器迁移到生产服务器?

sql - Informix SQL-这个简单的存储过程有什么问题&|触发语法?

sql - 将 DB2 SQL Decimal 转换为 DATE

sql - 如何获得从两个月前的第一天到昨天的日期表?

python - 在 Pyodbc 中使用哪个版本的 MySQL 驱动程序

c - DB2 存储过程在 C 程序中返回游标的多行

Django/Pyodbc/Apache - 使用 Apache 时出现连接错误

python - 如何使用 pyodbc 从 SQL 查询返回列表?