python操作DB2數據庫


#!/usr/bin/env python
# -*- coding:utf-8 -*-

#########################
# excute python2.7.13
# sudo pip install ibm_db
#########################
import ibm_db

def getDateFromDb2(uid,pwd):
  pass
try:
  conn = ibm_db.connect("DATABASE=seat;HOSTNAME=10.221.196.xx;PORT=50000;PROTOCOL=TCPIP;\
    UID=xxx;PWD=xxx", "", "")
except:
  print("connect failed,%s" % ibm_db.conn_errormsg())
else:
  sql = "SELECT * FROM TM_SEAT_CONDITION WHERE airline = 'CA' and "\
    "FLT_REG = 'B6822' and MARK_FOR_DELETE='N'"
  try:
    stmt = ibm_db.exec_immediate(conn, sql)
    dictionary = ibm_db.fetch_both(stmt)
    while dictionary!=False:
      for i in range(0, 15):
        if i in (10, 12):
          print(dictionary.get(i).strftime('%Y-%m-%d %H:%M:%S')),
        else:
          print(dictionary.get(i)),
      print("\n")
      dictionary = ibm_db.fetch_both(stmt)
  except:
    print("stmt failed,%s" % ibm_db.stmt_errormsg())
  finally:
    if ibm_db.active(conn):
      ibm_db.close(conn)
    print("database close success!")

 # -------------------提取查詢結果有四種方式-----------------------#
    # 1.先調用fetch_row(stmt),有結果返回true否則返回false,再調用ibm_db.result(stmt, col_idx)提取結果
    # ibm_db.fetch_row(stmt)
    # result = ibm_db.result(stmt, 0)

    # 2.調用fetch_both(stmt)提取一行,返回的結果是一個字典,取值可以用列名或索引 result["MOBILE"]或 result[0]
    # result = ibm_db.fetch_both(stmt)

    # 3.調用fetch_assoc(stmt)提取一行,返回的是一個字典,取值只能用列明 result["MOBILE"]
    # result = ibm_db.fetch_assoc(stmt)

    # 4.調用fetch_tuple(stmt)提取一行,返回的是一個元組,取值只能用索引 result[0]
    # result = ibm_db.fetch_tuple(stmt)

    # 注: ibm_db沒辦法一次提取多行,提取多行數據,需要循環提取


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM