【发布时间】:2017-11-03 12:50:06
【问题描述】:
我的挑战是使用来自Cdata 的 ODBC 驱动程序连接到 Netsuite。我已经完成了驱动程序的设置。
我的 odbcinst -j:
unixODBC 2.2.14
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /root/.odbc.ini
SQLULEN Size.......: 8
SQLSETPOSIROW Size.: 8
我正在尝试使用此 python 代码获取数据:
import pyodbc
cnxn = pyodbc.connect('DSN=NetSuite;User=username;Password=passwd')
pcursor = cnxn.cursor()
pcursor.execute("SELECT * FROM Accounts")
rows = pcursor.fetchall()
for row in rows:
print(row)
其中 username 和 passwd 是 Netsuite 帐户的凭据。但是,它正在重新调整以下错误:
Traceback (most recent call last):
File "odbctest.py", line 5, in <module>
pcursor.execute("SELECT * FROM Accounts")
pyodbc.Error: ('HY000', '[HY000] The directory name is invalid. (-1) (SQLExecDirectW)')
非常感谢任何帮助。
【问题讨论】:
-
您能否确认
/etc/odbcinst.ini、/etc/odbc.ini和/root/.odbc.ini存在并且用户可以访问它们?查看/etc/odbcinst.ini和/etc/odbc.ini的内容也有助于确保您已正确配置驱动程序和DSN。 -
请包含@JerodJohnson 提到的配置文件。
odbcinst.ini可能指向错误的驱动程序位置。
标签: python oracle odbc netsuite pyodbc