无法从pyodbc运行db2命令

时间:2017-09-01 11:27:51

标签: python db2 pyodbc

我需要通过python通过pyodbc驱动程序自动执行几个IBM DB 2命令。我已经通过DB2 ODBC Driver成功连接到数据库,并且可以运行SELECT,INSERT,CREATE TABLE命令。我需要运行db2levellist node directory show detail等命令,这些命令显示异常,如下所示:

pyodbc.ProgrammingError: ('42601', '[42601] [IBM][CLI Driver][DB2/LINUXX8664] SQL0104N  An unexpected token "END-OF-STATEMENT" was found following "db2level".  Expected tokens may include:  "JOIN <joined_table>".  SQLSTATE=42601\n (-104) (SQLExecDirectW)')

这是我的python pyodbc代码:

import pyodbc

cnx = pyodbc.connect(
    'Driver={DB2}; '
    'Hostname=192.168.0.185; '
    'Port=50005; '
    'Protocol=TCPIP; '
    'Database=ABC; '
    'CurrentSchema=db2inst8; '
    'UID=db2inst8; '
    'PWD=12345;'
    )
cursor = cnx.cursor()
cursor.execute("db2level")

1 个答案:

答案 0 :(得分:1)

'db2level'是一个外部程序,它不是SQL,你不能通过pyodbc调用它。您可以像调用任何外部命令一样调用命令db2level(只要它在同一主机名上)。

如果要使用SQL查找DB2服务器的DB2版本/修订包,则可以连接到数据库并使用db2提供的视图/函数来实现此目的。