【问题标题】:Python Query From Teradata pyodbc Module来自 Teradata pyodbc 模块的 Python 查询
【发布时间】:2016-10-18 16:53:24
【问题描述】:
import pyodbc
conn = pyodbc.connect('DRIVER={Teradata};DBCNAME=<DATABASE_NAME>;UID=<UID>;PWD=<UID>;QUIETMODE=YES;')

Driver={} 部分的实际内容是什么?这是我放置 teradata .jar 文件(例如 terajdbc4.jar)的位置吗?

但这不起作用,我收到错误:

pyodbc.Error: ('01000', "[01000] [unixODBC][Driver Manager]Can't open lib 'terajdbc4.jar' : file not found (0) (SQLDriverConnect)")

【问题讨论】:

    标签: python teradata pyodbc


    【解决方案1】:

    如果您想使用 jdbc 驱动程序,请尝试jaydebeapi,据我所知,pyodbc 只能与传统的 odbc 驱动程序一起使用。

    import jaydebeapi
    conn = jaydebeapi.connect('com.teradata.jdbc.TeraDriver',
                              ['jdbc:teradata://%s/database=%s' % (SERVER,DB), USER, PASS],
                              ['/path/to/tdgssconfig.jar', '/path/to/terajdbc4.jar'])
    

    【讨论】:

    • 那么我需要什么 teradata 驱动程序才能使这个 pyodbc.connect 工作?
    【解决方案2】:

    这里似乎有两个问题:

    1. 正如fivetentaylor 提到的,您正在尝试将 ODBC 与 JDBC 驱动程序一起使用 - 但它们不能一起工作。要使用 ODBC,您需要一个 ODBC 驱动程序 - 对于 Linux 上的 Teradata,我认为是 this

    2. 您需要在下载后链接驱动程序,以便一切正常。

    这样做:

    1. 您需要将此驱动程序放在链接器可以找到它的目录中(您可以使用lld -v bash 命令查找链接器扫描库的文件夹)。

    2. 将此驱动程序放入库后,通常需要在/etc/odbcinst.ini 中配置驱动程序(查看here 以了解文件正确结构的说明。

    3. 最后,您使用您在最后阶段放入 odbcinst 文件中的驱动程序名称作为驱动程序名称。例如,如果您在 odbcinst.ini 文件中指定了一个驱动程序,如下所示:

      [Teradata]

      Description=Teradata 驱动程序

      Driver=/path/to/driver/file

    你会这样使用它:

    import pyodbc
    conn = pyodbc.connect('DRIVER={Teradata};DBCNAME=<DATABASE_NAME>;UID=<UID>;PWD=<UID>;QUIETMODE=YES;')
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 2012-12-25
      • 2014-02-09
      • 2014-12-24
      • 2016-06-26
      • 1970-01-01
      • 2019-07-17
      • 1970-01-01
      • 2017-10-27
      • 2017-05-02
      相关资源
      最近更新 更多