[Python] How to connect to Teradata Server using sqlalchemy and DSN less connection

Discussão em 'Python' iniciado por Stack, Fevereiro 23, 2025.

  1. Stack

    Stack Membro Participativo

    I can't figure out the right ODBC string I need to pass to the create engine statement.

    This works


    import pyodbc
    import pandas as pd

    cnxn=pyodbc.connect('DRIVER=/opt/teradata/client/ODBC_64/lib/tdata.so;DBCName=Server;UID=UN;PWD=PW;Database=myDB')

    query = "select top 10 * from TABLE"
    df = pd.read_sql(query,cnxn)

    This does not work


    import urllib
    import sqlalchemy
    params = urllib.parse.quote_plus('DRIVER=/opt/teradata/client/ODBC_64/lib/tdata.so;DBCName=Server;UID=UN;PWD=PW;Database=myDB')

    engine = sqlalchemy.create_engine("mssql+pyodbc:///?odbc_connect=%s" % params)

    query = "select top 10 * from TABLE"

    df = pd.read_sql_query(query, engine)


    I can get the pyodbc connection to work but not the sqlalchemy connection. Any help would be appreciated.

    I get this error:

    InterfaceError: (pyodbc.InterfaceError) ('IM001', '[IM001] [unixODBC][Driver Manager]Driver does not support this function (0) (SQLGetInfo)')

    Continue reading...

Compartilhe esta Página