Python 初始化 db2cmd 并与 DB2 交互
Python init db2cmd and interact with DB2
如何从 Python 脚本启动 DB2 命令行环境 (Windows) 和 运行 DB2 shell EXPORT 命令并等待结果和错误处理中?
我试过运行
process = subprocess.call(or run)(["db2cmd", "./export.bat"],
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True)
或
process = subprocess.run(or Popen)(["db2cmd",
"db2 connect to SAMPLE user XXX using XXXXX"
" & db2 EXPORT TO STAFF.ixf OF IXF SELECT * FROM STAFF"])
有效 但是
- 主 Python 脚本不会等待 DB2 导出完成 - 它 运行s DB2CMD 在单独的 CMD window 中并终止立即地。带导出功能的 DB2CMD 继续分别 运行;
- 所有输出流都是空的 - 我无法通过这种方式获得任何 errors/results。
Pyhton 3.8 脚本的最佳方法是什么
初始化 DB2 命令行环境;
连接到 DB2 数据库;
运行 EXPORT 命令并等待结果?
如果出现错误 - 重新连接到数据库并再次运行导出。
*使用 ibm_db 不适合大表和复杂数据。
@mao 的回答很有帮助,谢谢!
在EXPORT脚本BAT文件的开头加上这个(魔法符号是什么?)
set DB2CLP=**$$**
在 Pyhton 脚本中使用 'call'。 Pyhton 运行并等待 EXPORT BAT
完成
subprocess.call("\path\to\export.bat" , shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True )
分析文本输出是否有错误。
如何从 Python 脚本启动 DB2 命令行环境 (Windows) 和 运行 DB2 shell EXPORT 命令并等待结果和错误处理中?
我试过运行
process = subprocess.call(or run)(["db2cmd", "./export.bat"],
shell=True,
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
text=True)
或
process = subprocess.run(or Popen)(["db2cmd",
"db2 connect to SAMPLE user XXX using XXXXX"
" & db2 EXPORT TO STAFF.ixf OF IXF SELECT * FROM STAFF"])
有效 但是
- 主 Python 脚本不会等待 DB2 导出完成 - 它 运行s DB2CMD 在单独的 CMD window 中并终止立即地。带导出功能的 DB2CMD 继续分别 运行;
- 所有输出流都是空的 - 我无法通过这种方式获得任何 errors/results。
Pyhton 3.8 脚本的最佳方法是什么
初始化 DB2 命令行环境;
连接到 DB2 数据库;
运行 EXPORT 命令并等待结果?
如果出现错误 - 重新连接到数据库并再次运行导出。
*使用 ibm_db 不适合大表和复杂数据。
@mao 的回答很有帮助,谢谢!
在EXPORT脚本BAT文件的开头加上这个(魔法符号是什么?)
set DB2CLP=**$$**
在 Pyhton 脚本中使用 'call'。 Pyhton 运行并等待 EXPORT BAT
完成subprocess.call("\path\to\export.bat" , shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True )
分析文本输出是否有错误。