在Python中连接DB2

1 投票
2 回答
7164 浏览
提问于 2025-04-15 22:51

我正在尝试在一个Python脚本中连接我的DB2数据库。连接成功后,我需要运行一些不同的SQL语句。

我在网上查了这个问题,还看了ibm_db的API文档(http://code.google.com/p/ibm-db/wiki/APIs),但就是搞不定。

这是我目前的代码:

import sys
import getopt
import timeit
import multiprocessing
import random
import os
import re
import ibm_db
import time
from string import maketrans

query_str = None

conn = ibm_db.pconnect("dsn=write","usrname","secret")
query_stmt   = ibm_db.prepare(conn, query_str)
ibm_db.execute(query_stmt, "SELECT COUNT(*) FROM accounts")
result = ibm_db.fetch_assoc()
print result
status = ibm_db.close(conn)

但是我遇到了一个错误。我真的试了很多方法(虽然不是所有,但也差不多了),就是无法让它正常工作。

我只需要写一个自动测试的Python脚本,能够测试不同的查询和不同的索引等等,为此我需要在过程中创建和删除索引。

希望有人能提供解决方案,或者知道一些可以下载和学习的示例代码。

谢谢

Mestika

2 个回答

0

抱歉,你当然需要错误信息。当我尝试运行我的脚本时,它给了我这个错误:

Traceback (most recent call last):
  File "test.py", line 16, in <module>
    ibm_db.execute(query_stmt, "SELECT COUNT(*) FROM accounts")
Exception: Param is not a tuple

我很确定问题出在我的参数“SELECT COUNT(*) FROM accounts”上,但我不知道该怎么修复它或者应该放什么替代它。

4

应该是:

query_str = "SELECT COUNT(*) FROM accounts"

conn = ibm_db.pconnect("dsn=write","usrname","secret")
query_stmt   = ibm_db.prepare(conn, query_str)
ibm_db.execute(query_stmt)

撰写回答