2017-10-13 13 views
1

J'ai eu quelques problèmes en essayant de créer (ou sélectionner) à partir de tables dont le nom dépend de la variable que je lui donne. Voici un exemple de code que j'ai essayé qui n'a pas fonctionné, où 'Hey' = le nom de la table (qui existe dans la base de données) que j'essaie de sélectionner via la variable 'j'.Pyodbc: Comment sélectionner à partir d'une table qui a une chaîne/nom de variable

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

Quelqu'un at-il une solution pour cela? Merci d'avance.

Répondre

0

Le ? est destiné aux paramètres liés et, malheureusement, les noms de table ne fonctionneront pas de cette manière. Cependant, cette volonté, mais attention de l'injection SQL:

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

Malheureusement, vous ne pouvez pas le lier à un nom de variable T-SQL soit, comme vous êtes juste en aval en passant le problème à un T-SQL EXEC commande, comme indiqué ici: Table name as variable S'il vous plaît noter également que cela est dû à la conception de SQL Server et T-SQL, pas pyodbc.

Bonne chance!