python版本为3.5

  1. 导入IBM的数据包: Python Package Index 解压后 ibm_db
  2. 下载db2驱动 clidriver 解压后得到clidriver目录
  3. 将clidriver复制到ibm_db目录,进入ibm_db目录,执行python setup.py install即可

ibm_db有两种执行方式

# 1、采用立即执行的方式,不支持?占位符,只能采取拼接字符串的方式,且字符串类型的数据一定要有单引号
sql = "SELECT * FROM TAB_USER WHERE MOBILE = '%s';"%"13911111111"
stmt = ibm_db.exec_immediate(conn, sql)
result = ibm_db.fetch_both(stmt)   # 提取结果
print(result)# 2、采用预编译的方式,支持 ? 占位符
sql = "SELECT * FROM TAB_USER WHERE MOBILE= ?"
sql_args = ("13911111111",)
stmt = ibm_db.prepare(conn, sql)    # 预编译
ibm_db.execute(stmt, sql_args)      # 执行
result = ibm_db.fetch_row(stmt)
print(result)
import ibm_db# 连接字符串
connStr = "DATABASE=TEST;HOSTNAME=192.168.0.1;PORT=50000;PROTOCOL=TCPIP;UID=username;PWD=password;"
conn = None
try:# 连接数据库conn = ibm_db.connect(connStr, "", "")# 关闭自动提交ibm_db.autocommit(conn, ibm_db.SQL_AUTOCOMMIT_OFF)# 以插入语句为例,删除和更新只需要替换语句即可sql = "insert into tab_A values('%s', '%s')" % (1, "Jet")# 执行SQL语句stmt = ibm_db.exec_immediate(conn, sql)# 获取受影响的行数rows = ibm_db.num_rows(stmt)# 提交事务ibm_db.commit(conn)
except Exception as ex:# 回滚事务ibm_db.rollback(conn)
finally:# 关闭数据库连接ibm_db.close(conn)

ibm_db没办法一次提取多行,提取多行数据,需要循环提取。提取查询结果有四种方式:

# 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)
#-*-coding-*-
import ibm_db
import time
conn = ibm_db.connect("DATABASE=EDW;HOSTNAME=输入IP;PORT=端口;PROTOCOL=通信协议;UID=用户名;PWD=密码;", "", "")
#print(conn)
if conn:#写一条查询语句sql = "Select  A,B,C from CC.ABC"stmt = ibm_db.exec_immediate(conn,sql)result = ibm_db.fetch_both(stmt)for i in range(len(result)):print("第一个字段:",result[0]+'\n'+"第二个字段:",result[1]+'\n'+"第三个字段",result[2])print('----------------')#停止0.5秒输出time.sleep(0.5)result = ibm_db.fetch_both(stmt)
#最后记得关闭数据库连接
ibm_db.close(conn)

注意事项

  1. 就是一定记得要关闭连接。
  2. 读取数据只能一行一行读取,需要result = ibm_db.fetch_both(stmt) 代码在调下一行

Python连接DB2数据库相关推荐

  1. python连接db2数据库 import的包_python 连接DB2数据库

    pandas 链接DB2数据库 注意事项: 1.就是一定记得要关闭连接. 2.读取数据只能一行一行读取,需要 result = ibm_db.fetch_both(stmt) 代码再调下一行 impo ...

  2. python连接sql_Python连接DB2数据库

    在工作中遇到了这样的情况,项目中需要连接IBM的关系型数据库(DB2),关于这方面的库比较稀少,其中 ibm_db 是比较好用的一个库,网上也有教程,但是好像不准确,也不太详细,错误百出,没办法只能拿 ...

  3. python3连接db2数据库_Python如何连接DB2数据库?

    今天我们来探讨下Python如何连接DB2数据库.DB2是IBM在美国开发的一组关系数据库管理系统.它的主要操作环境是UNIX(包括IBM自己的AIX),Linux,IBM i(以前称为OS/400) ...

  4. Python 技术篇-连接oracle数据库并执行sql语句实例演示,python连接oracle数据库oci详细配置方法

    Python 连接 Oracle 数据库 第一章:连接 oracle 数据与环境配置 ① 连接 oracle 数据库效果演示 ② oci 下载 ③ oci 配置 ④ 环境变量配置 ⑤ 检测是否有 or ...

  5. Python连接Oracle数据库,以字典形式返回结果

    众所周知,Python连接Oracle数据库,一般都使用cx_Oracle这个包. 但关键是cx_Oracle这个包,返回的结果,都是元组或者列表. 如以下代码: 1 import cx_Oracle ...

  6. python链接hbase模块_HBase实战(1):使用Python连接Hbase数据库

    来源于 https://blog.csdn.net/duan_zhihua/java/article/details/80622166 使用Python连接Hbase数据库 1,Hbase下载. 下载 ...

  7. python连接各种数据库数据_Python连接各种数据库

    1.连接Hive数据库 想直接使用python连接hive数据库,貌似有很多包可以选,网上用的比较多的是PyHive和impyla.这里我直接选用了PyHive. Pyhive这个包安装非常容易,这里 ...

  8. Python连接Mysql数据库入门

    Python 连接mysql数据库入门教程 直接上代码 数据库建表省略 要执行哪段代码把#去掉即可:有文字解释 难度 : ⭐⭐(全星5颗星的情况下) import pymysql # 导入模块 根据P ...

  9. 【Oracle】Python 连接Oracle 数据库

    From: http://space.itpub.net/22664653/viewspace-711728 Python 连接Oracle 数据库,需要使用cx_Oracle 包. 1 下载cx_O ...

  10. Python连接MySQL数据库(pymysql),DataFrame写入 MySQL(create_engine)- Python代码

    模块安装 使用以下命令安装 PyMySQL: $ pip install PyMySQL 若系统不支持 pip,还可以这样安装: $ git clone https://github.com/PyMy ...

最新文章

  1. pandas获取dataframe数据列的数据类型、获取dataframe每类数据类型数据列的个数、使用select_dtypes函数、include参数以及exclude参数按照数据类型筛选数据
  2. wxpython应用程序对象与顶级窗口_wxPython 基础 | 学步园
  3. Delphi7 (第二天:结构及常用函数)
  4. MongoDB -- Error: unclean shutdown detected
  5. leetcode 73 矩阵置零 Python
  6. 给定圆的半径r,求圆的面积。
  7. TypeError系列之:TypeError: 'tuple' object does not support item assignment
  8. shell脚本-页面静态化
  9. JVM 性能调优监控工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解
  10. hihocoder第212周-动态规划
  11. android--gradle编译龟速?offline!
  12. C#设计模式--设配器模式
  13. 计算机自带pdf吗,PDF是什么?怎么电脑上编辑PDF文件
  14. 网络编程学习之经典书籍推荐
  15. 巴拿赫空间的基本概念
  16. C语言外推法求搜索区间程序,一维搜索外推法程序设计实验报告.doc
  17. HDOJ 最小长方形 1859
  18. 关于python的毕业设计题目_计算机毕业设计如何选题
  19. Navicat for MySQL 安装以及初始创建连接,新建数据表
  20. PyTorch学习笔记(20) ——激活函数

热门文章

  1. gimp 抠图_gimp抠图教程:gimp快速实现抠图效果
  2. Shiro 放行Swagger
  3. ORK包的安装与linemod算法识别测试 (使用kinect v2 出现很奇怪的问题和解决)
  4. 主生产计划 操作教程 用友u8_【用友u8操作教程(用友财务软件u8实际操作教程)】免费在线试用_软件库_选软件网...
  5. 噪声报警c语言程序,环境噪声监测器(软件部分).doc
  6. Python进阶练习题,新手快码起来
  7. RPA机器人可以为工业制造业带来什么巨变
  8. 使用 CleanWipe 解决Symantec Endpoint Protection卸载需要密码问题
  9. ad怎么批量改元器件封装_ad16如何批量添加封装库?
  10. 【资料分享】500篇干货解读人工智能新时代