来自Teradata pyodbc模块的Python查询

时间:2016-06-17 01:07:18

标签: python teradata pyodbc

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

Driver = {}部分实际上是什么?这是我放置.jar这样的teradata terajdbc4.jar文件的位置吗?

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

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

2 个答案:

答案 0 :(得分:1)

这里似乎有两个问题:

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

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

  3. 这样做:

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

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

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

      [Teradata的]

      描述= Teradata驱动程序

      驱动器= /路径/到/驱动器/文件

    4. 您可以这样使用它:

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

      希望这有帮助!

答案 1 :(得分:0)

尝试jaydebeapi如果你想使用jdbc驱动程序,就我所知,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'])