I am trying to limit my query to a table in teradata database using python
#1.params=dfm['cust'].astype(str).to_list()
params=tuple(list(dfm['cust'].astype(str)))
import teradata
import pandas as pd
#Make a connection
udaExec = teradata.UdaExec (appName="test", version="1.0", logConsole=False)
with udaExec.connect(method="ODBC",system=host, username=uid,
password=pwd, driver="Teradata Database ODBC Driver 16.20",authentication="LDAP") as connect:
query = "SELECT Cust, Flag FROM DBName.Tablename where Cust in %(params)s"
#Reading query to df
df = pd.read_sql(query,connect,params=params)
I tried to supply params as a list and it did not work. I tried to supply params as a tuple and it still did not work. I got the following error.
Execution failed on sql 'SELECT Cust,Flag FROM DBName.TableName where Cust in %(params)s': (3704, "[42000] [Teradata][ODBC Teradata Driver][Teradata Database](-3704)'%' ('25'X) is not a valid Teradata SQL token.")
What is wrong with the code?