在将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>"
**注意:**我没有使用teradata OOTB python模块,因为它适用于我无法安装的更高版本的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')
关于这个问题的任何指导都是有帮助的
您需要安装一些软件包。您可以使用以下命令:
sudo yum install unixODBC unixODBC-devel libtool-ltdl libtool-ltdl-devel
此wiki将帮助您。
https://github.com/mkleehammer/pyodbc/wiki