【发布时间】:2019-08-25 13:48:16
【问题描述】:
我的项目目前正在使用pypyodbc Python 库连接到 DB2 数据库,我的源是 MS SQL 服务器,我需要从中读取数据并将数据加载到 DB2 表中。数据量为百万行,我正在尝试使用executemany() 方法在一次执行中加载 50 条记录,但我不断收到错误:
数据必须在列表、元组或行中
我确实使用list 函数对我的光标结果进行类型转换,但它仍然不起作用。结果集中的数据格式为[(record1),(record2)]。代码sn-p如下:
也尝试过对 sql 结果集元组进行类型转换
# use pypyodbc to establish a connection - db2_conn.
cur = db2_conn.cursor()
cur.execute('...a query with 10 columns...')
result = cur.fetchmany(50)
insert_query = 'insert into db2_table (col1,col2,col3,...) values (?,?,?,..)'
cur.executemany(insert_query, list(result))
cur.commit()
【问题讨论】:
-
MS SQL 游标在哪里?这看起来只在 DB2 连接上运行查询。 still doesn't work 是否意味着在 results 上有或没有
list()的完全相同的错误? -
--ms sql server 连接 sql_conn = pyodbc.connect("DRIVER="+src_driver+";SERVER="+src_server+";DATABASE="+src_database+";UID="+src_username+";PWD ="+ src_password) --db2 连接 db2_conn = pypyodbc.connect(driver=tgt_driver, system=tgt_system, uid=tgt_username, pwd=tgt_password)
-
请用代码编辑帖子(不在 cmets 中)并展示它如何集成到上述代码块中。根据需要进行编辑。我必须修复很多无法在 Python 中运行的问题。然后回来删除上面难以阅读的评论,我也会。
标签: python parameters db2 odbc pypyodbc