Python での結果セットからの行または列のフェッチ
1 つ以上の結果セットを返すステートメントを実行した後、ibm_db API で使用可能ないずれかの関数を使って、返された行を繰り返して取り出します。
大きいデータ (BLOB データや CLOB データなど) を格納する列が結果セットに含まれる場合、メモリー使用量が多くなるのを避けるために、列ごとにデータを取得することができます。
始める前に
関連する 1 つ以上の結果セットを持つ 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")