SQL Parameter in Python script

Viewed 39

I'm looking to do a simple read_sql in pandas to use a variable to extract data in Python and SQL Server as such:

import pyodbc as cnn
import pandas as pd

cursor = cnn.Cursor

cnxn = cnn.connect('DRIVER={SQL Server};SERVER=SQLSERVER;DATABASE=DATABASE')

x = "FirstName"

tableResult = pd.read_sql(("SELECT  * FROM TABLE where COLUMN = ?"),cnxn,index_col=None, coerce_float=True, params=x)

I get the following error however:

Execution failed on sql 'SELECT  * FROM TABLE where COLUMN = ?': ('The SQL contains 1 parameter markers, but 9 parameters were supplied', 'HY000')

What am I doing wrong here?

I also tried this, which runs, but I don't know how to actually grab the results here:

tableResult2 = cnxn.execute("SELECT  * FROM TABLE where COLUMN = ?", x)
1 Answers

It would be like this:

import pyodbc as cnn
import pandas as pd

cursor = cnn.Cursor

cnxn = cnn.connect('DRIVER={SQL Server};SERVER=SQLSERVER;DATABASE=DATABASE')

x = "FirstName"

query=("SELECT  * FROM TABLE" 
f"where COLUMN = '{x}'")

tableResult = pd.read_sql(query,cnxn)
Related