我正在尝试通过ODBC访问运行Teradata服务的远程主机。 我尝试连接的主机是64位RHEL 6.x,安装了以下Teradata软件:
当我尝试通过Python(交互式会话)连接到远程主机时,我收到一个“无法获取目录字符串”#39;错误:
[@myhost:/path/to/scripts] ->python
Python 2.6.6 (r266:84292, Nov 21 2013, 10:50:32)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyodbc
>>> pyodbc.pooling = False
>>> cn = pyodbc.connect("DRIVER={Teradata}; SERVER=12.245.67.255:1025;UID=usr;PWD=pwd", ANSI = True)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
pyodbc.Error: ('28000', '[28000] [Teradata][ODBC Teradata Driver] Unable to get catalog string. (0) (SQLDriverConnect)')
此外,当我尝试使用isql(来自unixODBC yum包)时,我收到相同的错误
[@my_host:/path/to/scripts] ->isql -v proddsn
[28000][Teradata][ODBC Teradata Driver] Unable to get catalog string.
[ISQL]ERROR: Could not SQLConnect
答案 0 :(得分:2)
我认为该消息表示Teradata驱动程序正在尝试显示错误消息,但无法找到目录文件。我认为您需要设置一个NLSPATH环境值,指向您的tdodbc.cat文件所在的位置。这些方面的东西:
/opt/teradata/client/lib/odbc/%N.cat
看起来很时髦的%N.cat是标准的,你只需要指向正确的位置。