在 Python 中访存结果集中的行或列
执行返回一个或多个结果集的语句后,请使用 ibm_db API 中提供的其中一个函数对返回的行执行迭代。 如果结果集中的列包含大型数据(例如,BLOB 或 CLOB 数据),您可按列检索这些数据,以避免使用大量内存。
准备工作
必须存在由 ibm_db.exec_immediate 或 ibm_db.execute 函数返回,且具有一个或多个关联结果集的语句资源。
过程
要从结果集访存数据,请完成下列步骤:
示例
示例 1:通过调用 ibm_db.fetch_both 函数从结果集访存行
import ibm_db
conn = ibm_db.connect("database","username","password")
sql = "SELECT * FROM EMPLOYEE"
stmt = ibm_db.exec_immediate(conn, sql)
dictionary = ibm_db.fetch_both(stmt)
while dictionary != False:
print "The ID is : ", dictionary["EMPNO"]
print "The Name is : ", dictionary[1]
dictionary = ibm_db.fetch_both(stmt)示例 2:通过调用 ibm_db.fetch_tuple 函数从结果集访存行
import ibm_db
conn = ibm_db.connect("database","username","password")
sql = "SELECT * FROM EMPLOYEE"
stmt = ibm_db.exec_immediate(conn, sql)
tuple = ibm_db.fetch_tuple(stmt)
while tuple != False:
print "The ID is : ", tuple[0]
print "The name is : ", tuple[1]
tuple = ibm_db.fetch_tuple(stmt)示例 3:通过调用 ibm_db.fetch_assoc 函数从结果集访存行
import ibm_db
conn = ibm_db.connect("database","username","password")
sql = "SELECT * FROM EMPLOYEE"
stmt = ibm_db.exec_immediate(conn, sql)
dictionary = ibm_db.fetch_assoc(stmt)
while dictionary != False:
print "The ID is : ", dictionary["EMPNO"]
print "The name is : ", dictionary["FIRSTNME"]
dictionary = ibm_db.fetch_assoc(stmt)
示例 4:从结果集访存列
import ibm_db
conn = ibm_db.connect("database","username","password")
sql = "SELECT * FROM EMPLOYEE"
stmt = ibm_db.exec_immediate(conn, sql)
while ibm_db.fetch_row(stmt) != False:
print "The Employee number is : ", ibm_db.result(stmt, 0)
print "The last name is : ", ibm_db.result(stmt, "LASTNAME")