2014-04-01 47 views
0

我试图访问通过ODBC运行Teradata服务的远程主机。 ,我试图连接的主机是64位的RHEL 6.x中安装了以下的Teradata软件:Teradata使用ODBC连接时出现“无法获取目录字符串”错误

  1. BTEQ
  2. fastexp
  3. fastld
  4. jmsaxsmod
  5. MLOAD
  6. mqaxsmod
  7. npaxsmod
  8. sqlpp
  9. tdodbc
  10. tdwallet
  11. tptbase
  12. tptstream
  13. tpump

当我尝试连接到通过Python(交互会话)的远程主机,我收到一个“无法获取目录串'错误:

[@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 

回答

2

认为该消息意味着,Teradata的司机正试图显示错误消息,但它无法找到目录文件。我认为你需要设置一个指向你的tdodbc.cat文件的NLSPATH环境值。沿着这些路线的东西:

/opt/teradata/client/lib/odbc/%N.cat 

这时髦的期待%N.cat是标准的,你只需要指向正确的位置。

+0

谢谢!一切都如预期的那样正常运行。 – Jubbles