私はPython(2.7)にかなり慣れていないので、pyodbcの助けにはなりません。ストアド プロシージャを呼び出すスクリプトがあります。
sql = "exec gen_all.dbo.rpt_trinity_total '" + startDate + "', '" + endDate + "'"
print sql
dbCursor.execute(sql)
rows = dbCursor.fetchall()
for row in rows:
print row[0], row[1]
ストアド プロシージャの最後に、渡された日付を返しました。これは、パラメーターが設定されているときに SP が呼び出されていることを確認するためです。すべてが機能しているように見えますが、SP によって入力されるはずのテーブルを見ると、そこには何もありません。管理コンソールで SP を実行すると、問題なく動作します。
ここで解決策であることが判明したもの、つまり次のことを試しました。
dbCursor.execute("{call gen_all.dbo.rpt_trinity_total(?,?)}", (startDate),(endDate))
しかし、同じ結果が得られました。SP 自体は非常に単純で、渡された日付に基づいて SELECT を使用して TRUNCATE と INSERT を実行します。
誰かがこれについて何らかの洞察を与えることができるかどうか疑問に思っています. 本当にありがとう。