Teradata pypyodbc SQL_INVALID_HANDLE - PullRequest
       65

Teradata pypyodbc SQL_INVALID_HANDLE

0 голосов
/ 21 ноября 2018

При подключении pypyodbc с teradata я получаю SQL_INVALID_HANDLE

ОС - Red Hat 4.4.7-17

Версия Python - 2.6.6

У меня нет прав администратора для установки pypyodbc, поэтому я скачал модуль, установил pythonpath и импортировал его.

Выполнен необходимый экспорт для указания модуля python, чтобы найти правильный libodbc.so

export LD_LIBRARY_PATH=/opt/teradata/client/15.10/odbc_64/lib/
export ODBCINST=/opt/teradata/client/ODBC_64/odbcinst.ini
export ODBCINI=/opt/teradata/client/ODBC_64/odbc.ini

использовал приведенный ниже код для создания соединения БД.

pypyodbc.connect("Driver={Teradata};DBCNAME=<DB>;UID=<UNAME>;PWD=<PASS>")

Строка соединения odbc, которую я использовал, правильная.Я проверил, используя следующий подход

/opt/teradata/client/15.10/bin/tdxodbc64 -C "Driver={Teradata};DBCNAME=<DB>;UID=<UNAME>;PWD=<PASS>"

** Примечание: ** Я не использую модуль python OradB teradata, потому что он работает с более поздней версией python, которую я не могу установить.

Ошибка

  File "<stdin>", line 1, in <module>
  File "<LOCAL_PATH>/pypyodbc.py", line 2421, in __init__
    AllocateEnv()
  File "<LOCAL_PATH>/pypyodbc.py", line 1000, in AllocateEnv
    check_success(SQL_NULL_HANDLE, ret)
  File "<LOCAL_PATH>/pypyodbc.py", line 990, in check_success
    ctrl_err(SQL_HANDLE_ENV, ODBC_obj, ret, False)
  File "<LOCAL_PATH>/pypyodbc.py", line 970, in ctrl_err
    raise ProgrammingError('', 'SQL_INVALID_HANDLE')
pypyodbc.ProgrammingError: ('', 'SQL_INVALID_HANDLE')

Любое руководство по этому вопросу полезно

1 Ответ

0 голосов
/ 22 февраля 2019

Вам необходимо установить несколько пакетов.Вы можете использовать эту команду:

sudo yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel

Эта вики поможет вам.

https://github.com/mkleehammer/pyodbc/wiki

...