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)")
答案 0 :(得分:1)
这里似乎有两个问题:
正如fivetentaylor
提到的那样,您正在尝试将ODBC与JDBC驱动程序一起使用 - 而且它们不能一起工作。要使用ODBC,你需要一个ODBC驱动程序 - 对于Linux上的Teradata,我认为this就是它。
您需要在下载后链接驱动程序,以便一切正常。
这样做:
您需要将此驱动程序放在链接器将找到它的目录中(您可以使用lld -v
bash命令查找链接器扫描libs的文件夹。
将此驱动程序放入库后,通常需要在/etc/odbcinst.ini
中配置驱动程序(查看here以获取文件正确结构的说明。
最后,使用您在最后一个阶段的odbcinst文件中放入的驱动程序的名称作为驱动程序名称。因此,例如,如果你在odbcinst.ini文件中指定了一个驱动程序,如下所示:
[Teradata的]
描述= Teradata驱动程序
驱动器= /路径/到/驱动器/文件
您可以这样使用它:
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'])