J'ai besoin d'automatiser quelques commandes IBM DB 2 via python via le pilote pyodbc. Je me suis connecté avec succès à la base de données par le pilote DB2 ODBC et peut exécuter les commandes SELECT, INSERT, CREATE TABLE. J'ai besoin d'exécuter des commandes telles que db2level
, list node directory show detail
, etc., qui font preuve exception comme suit:Impossible d'exécuter les commandes db2 à partir de pyodbc
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)')
Ceci est mon python code 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")
'list node directory' est une commande DB2 CLP. Évidemment, vous ne pouvez pas exécuter via une interface SQL. – mustaccio