2017-10-13 22 views
1

私が与えている変数に名前が依存するテーブルを作成(または選択)しようとする際に問題が発生しています。Pyodbc:文字列/変数名を持つテーブルから選択する方法

以下の例は、私が試したコードの例です。ここで、 'Hey' =変数 'j'を使って選択しようとしている(データベースに存在する)テーブルの名前です。

j = 'Hey' 
rows = conn.execute("SELECT * from ?", (j,)).fetchall() 
print(rows) 

誰にでも解決策がありますか?前もって感謝します。

答えて

0

?はバインドされたパラメータを対象としていますが、残念なことにテーブル名はこのようには機能しません。しかし、この意志が、SQLインジェクションのように注意してください:あなただけのT-SQLに下流の問題を渡しているよう

j = 'Hey' 
rows = conn.execute("SELECT * from {table_name}".format(table_name=j)).fetchall() 
print(rows) 

残念ながら、あなたは、どちらかのT-SQL変数名にバインドすることはできませんEXECコマンド:Table name as variableこれは、pyodbcではなく、SQL ServerとT-SQLの設計によるものです。

幸運を祈る!

関連する問題