pyodbc executemany関数を使用しようとすると問題が発生します。 私はOracleデータベースを持っており、複数の日のデータを抽出したいと考えています。pyodbcのExecutemanyは最後のパラメータの結果を返します
私のリクエストでは、データベースが日付フィールドに索引付けされておらず、永遠に使用されているため、間には使用できません。 私は一日中手作業で質問し、回答を処理したいと思います。 この部分はスレッドできませんので、executemany
を使用してより迅速に行を取得したいと考えていました。
問題は私がexecutemany
を使用したときです。私は最後の引数の結果を得ました。行で
import pyodbc
conn = pyodbc.connect('DRIVER={Oracle in instantclient_11_2};DBQ=dbname;UID=uid;PWD=pwd')
cursor = conn.cursor()
query = "SELECT date FROM table WHERE date = TO_DATE(?, 'DD/MM/YYYY')"
query_args = (
('29/04/2016',),
('28/04/2016',),
)
cursor.executemany(query, query_args)
rows = cursor.fetchall()
は、私だけ(datetime.datetime(2016, 4, 28, 0, 0),)
で行を見つけることができます。
は、ここに私のコードです。 常に最後の引数です。
私は11.0.2のクライアントを持つOracleデータベースのWinPythonからPython 2.7.9を使用しています。 このクエリ以外のすべてのクエリは完全に正常です。私は、データベース側の操作を制限したい、とスクリプト側でのものの大半を行う
を(私が試したが、それはあまりにも長いです)
を:
リクエストに1000以上の異なる日付が表示されることがあります。
私は2つの理由のためにIN()
synthaxを使用することはできません
(今私は、IN()OR IN()ORからIN()を使用して...しかし、誰もが素晴らしいだろう、より良いものを見つけた場合だ!)
私が何か間違ったことをやっていますか?
ありがとうございます。
、Iスクリプト側で処理したいので、executemanyを使いたいのです。あなたの要求に 'execute'を使うことができます。' executemany'は必要ありません。 – Anthony