Teradata'无法获得目录字符串'使用ODBC连接时出错

时间:2014-04-01 18:11:44

标签: odbc teradata rhel pyodbc unixodbc

我正在尝试通过ODBC访问运行Teradata服务的远程主机。 我尝试连接的主机是64位RHEL 6.x,安装了以下Teradata软件:

  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
  14. 当我尝试通过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
    

1 个答案:

答案 0 :(得分:2)

认为该消息表示Teradata驱动程序正在尝试显示错误消息,但无法找到目录文件。我认为您需要设置一个NLSPATH环境值,指向您的tdodbc.cat文件所在的位置。这些方面的东西:

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

看起来很时髦的%N.cat是标准的,你只需要指向正确的位置。