问题
Tried to connect to the Oracle database using Pyodbc:
try:
db_connection = pyodbc.connect('DSN=OraDev; PWD=%s' % Key.dbKeys['password'])
except pyodbc.Error, err:
print >> debug_file, "Database connection failed: %s" %err
sys.exit()
and it keeps giving me this error message:
'[IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application (0) (SQLDriverConnect)
So I am wondering if the culprit is that I am not having the "matching" components. Currently, I have:
- Python 2.7 32bit
- Pyodbc 3.0.6 win32-py2.7
- Oracle ODBC driver: 32bit
- Windows server 2008 64bit
- Oracle 11.2.0 64bit
Are there anything wrong with the versions here? Thanks.
回答1:
The issue you are having is that 64 bit Windows does not play well with 32 bit ODBC. You can read more about it here:
The 32-bit version of the ODBC Administrator tool and the 64-bit version of the ODBC Administrator tool display both the 32-bit user DSNs and the 64-bit user DSNs in a 64-bit version of the Windows operating system.
The work around is to specifically target the ODBC driver for the architecture you are looking to implement.
A side note, trying to implement ODBC for oracle on a mixed architecture platform became a headache for us. So, we implemented access to oracle through CX_Oracle
来源:https://stackoverflow.com/questions/12573741/python-oracle-connection-issue-with-pyodbc