0

python pyodbc モジュールを介して次の db2 コマンドを実行しようとしています

IBM DB2 Command : "DB2 export to C:\file.ixf of ixf select * from emp_hc"

Python で pyodbc モジュールを使用して DSN に正常に接続され、select ステートメントで正常に動作します

しかし、Python IDLE 3.3.2 から次のコマンドを実行しようとすると

cursor.execute(" export to ? of ixf select * from emp_hc",r"C:\file.ixf") pyodbc.ProgrammingError: ('42601', '[42601] [IBM][CLI Driver][DB2/LINUXX8664] ] SQL0104N "BEGIN-OF-STATEMENT" の後に予期しないトークン "db2 export to ? of" が見つかりました。予期されるトークンには次が含まれる可能性があります: ""。SQLSTATE=42601\r\n (-104) (SQLExecDirectW)')

または cursor.execute(" export to C:\file.ixf of ixf select * from emp_hc")

トレースバック (最新の呼び出しが最後): ファイル ""、1 行目、cursor.execute("export to C:\myfile.ixf of ixf select * from emp_hc") pyodbc.ProgrammingError: ('42601', '[42601] [IBM][CLI Driver][DB2/LINUXX8664] SQL0007N The character "\" after "export to C:" is not valid. SQLSTATE=42601\r\n (-7) (SQLExecDirectW)')

私は何か間違っていますか?どんな助けでも大歓迎です。

4

2 に答える 2

1

db2 exportodbc を介した SQL ではなく、シェルで実行されるコマンドです。

python と pyodbc を使用してデータベース クエリの結果をファイルに書き込むことは可能db2 exportですが、インポートに必要な場合は、ファイルの書式設定を簡単に処理できます。

于 2013-08-08T20:02:27.760 に答える
1

SQL ステートメントではなくユーティリティであるためEXPORT、通常の SQL インターフェースを介して直接実行することはできません。

幸いなことに、IBM はストアード・プロシージャーを提供して、探してSYSPROC.ADMIN_CMD()いるものだけを実行できるようにしています。

ただし、 を使用SYSPROC.ADMIN_CMD()すると、エクスポートされたデータをデータベース サーバー上の場所にしか書き込むことができないことに注意してください。db2 export ...(これは、ユーティリティを起動しているマシン (データベース サーバーまたはネットワーク経由で接続しているクライアント) にファイルを書き込む whichを使用するのとは対照的です)。

于 2013-08-09T06:10:12.333 に答える