Connecting to Netezza - mkleehammer/pyodbc GitHub Wiki
These unicode connection settings should work with Netezza:
# Python 2.7
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8')
cnxn.setencoding(str, encoding='utf-8')
cnxn.setencoding(unicode, encoding='utf-8')
# Python 3.x
cnxn.setdecoding(pyodbc.SQL_CHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WCHAR, encoding='utf-8')
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8')
cnxn.setencoding(encoding='utf-8')
If you find that columns names do not decode correctly in Python 3.x, replace
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-8')
with
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-16le')
Workaround for \x00 byte codes in Error Messages
Set UnicodeTranslationOption in ~/.odbcinst.ini to utf16:
UnicodeTranslationOption = utf16
and
cnxn.setdecoding(pyodbc.SQL_WMETADATA, encoding='utf-16le')