So. Эта проблема почти такая же, как обсуждавшаяся here, но исправление (такое как оно есть), обсуждаемое в этом сообщении, не помогает мне.Связи Python pyobbc с IBM Netezza Ошибка
Я пытаюсь использовать Python 2.7.5 и pyodbc 3.0.7 для подключения с 64-битной машины Ubuntu 12.04 к базе данных IBM Netezza. Я использую unixODBC для обработки DSN. Этот DSN прекрасно работает с CLI isql
, поэтому я знаю, что он настроен правильно, и unixODBC тикает прямо.
Код в настоящее время мертв просто и легко воспроизвести в РЕПЛ:
In [1]: import pyodbc
In [2]: conn = pyodbc.connect(dsn='NZSQL')
In [3]: curs = conn.cursor()
In [4]: curs.execute("SELECT * FROM DB..FOO ORDER BY created_on DESC LIMIT 10")
Out[4]: <pyodbc.Cursor at 0x1a70ab0>
In [5]: curs.fetchall()
---------------------------------------------------------------------------
InvalidOperation Traceback (most recent call last)
<ipython-input-5-ad813e4432e9> in <module>()
----> 1 curs.fetchall()
/usr/lib/python2.7/decimal.pyc in __new__(cls, value, context)
546 context = getcontext()
547 return context._raise_error(ConversionSyntax,
--> 548 "Invalid literal for Decimal: %r" % value)
549
550 if m.group('sign') == "-":
/usr/lib/python2.7/decimal.pyc in _raise_error(self, condition, explanation, *args)
3864 # Errors should only be risked on copies of the context
3865 # self._ignored_flags = []
-> 3866 raise error(explanation)
3867
3868 def _ignore_all_flags(self):
InvalidOperation: Invalid literal for Decimal: u''
Так я получаю соединение, запрос возвращает правильно, а затем, когда я пытаюсь получить ряд ... asplode ,
Никто никогда не мог это сделать?
вы нашли другое решение этой проблемы? Я только что столкнулся с этой проблемой. – mlevit
Нет, боюсь, еще нет. Похоже, что это проблема, которая должна быть исправлена в самом «pyodbc», и у меня не было столько времени на моих руках: -/ – Gastove
У меня была такая же ошибка на SQL-сервере ('bigint') и моей кастинг плохого столбца ('foo') больше походил на этот' select cast (foo as FLOAT) foo from table_name' – Paul