我需要通过python通过pyodbc驱动程序自动执行几个IBM DB 2命令。我已经通过DB2 ODBC Driver成功连接到数据库,并且可以运行SELECT,INSERT,CREATE TABLE命令。我需要运行db2level
,list 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")
答案 0 :(得分:1)
'db2level'是一个外部程序,它不是SQL,你不能通过pyodbc调用它。您可以像调用任何外部命令一样调用命令db2level(只要它在同一主机名上)。
如果要使用SQL查找DB2服务器的DB2版本/修订包,则可以连接到数据库并使用db2提供的视图/函数来实现此目的。