ブログ

Db2 on IBM Cloud に Pythonからつなぐ(Select編)

初めに

以前の投稿で、「IBM Cloud でDb2インスタンスを作成し、 Node.jsからアクセスしてみよう」という投稿をし、IBM Cloud のDb2を使用したと記載しましたが、今回は、Node.jsではなくPython(version3)での使用方法をご紹介します。

IBM CloudでのDb2の作成の仕方は、以前の投稿をご参照ください。

手順

1. ibm_dbモジュールのインストール

$ pip3 install ibm_db

※環境によってはpip3ではなく、pipの場合もあります。

2. ソースファイルの作成

ソースの中身はコメント行を参考にしてください。select_db2.py

import ibm_db;

# db2接続情報の定義(xxxxxは環境に応じて書き換えてください)
db_con_str = \
"DRIVER={DB2}" \
  + ";DATABASE=" + "xxxxx" \
  + ";HOSTNAME=" + "xxxxx" \
  + ";PORT=" + "xxxxx" \
  + ";PROTOCOL=TCPIP" \
  + ";UID=" + "xxxxx" \
  + ";PWD=" + "xxxxx" \
  + ";Security=SSL"

# 実行するselect文を定義
sql_str = "SELECT EMPLOYEEID, NAME, SYSTOOLS.BSON2JSON(PROFILE) as PROFILE FROM EMPLOYEES;"

# db2接続情報から接続オブジェクトを生成
conn = ibm_db.connect(db_con_str,"","")

# 接続オブジェクトと実行SQL文より、statementオブジェクトを作成
stmt = ibm_db.exec_immediate(conn, sql_str)

# fetch_assocによって、1行分のデータが取得される。
dictionary = ibm_db.fetch_assoc(stmt)

# 全行分取得が終わるまで、fetch_assocで、順次1行ずつ読み取って、出力する。
while dictionary != False:
    print(dictionary)
    dictionary = ibm_db.fetch_assoc(stmt)

3. ソースファイルの実行

$ python3 select_db2.py
{'EMPLOYEEID': 100, 'NAME': 'Tom', 'PROFILE': '{"hobby":"baseball","license":"driver"}'}
{'EMPLOYEEID': 110, 'NAME': 'Jhon', 'PROFILE': '{"hobby":"football"}'}

※環境によってはpython3ではなく、pythonの場合もあります。

pagetop