【发布时间】:2014-02-27 10:51:49
【问题描述】:
所以。这个问题与here 讨论的问题几乎完全相同——但是在那篇文章中讨论的修复(例如)并没有为我解决问题。
我正在尝试使用 Python 2.7.5 和 pyodbc 3.0.7 从 Ubuntu 12.04 64 位机器连接到 IBM Netezza 数据库。我正在使用 unixODBC 来处理指定 DSN。这个 DSN 在isql CLI 中运行良好——所以我知道它配置正确,并且 unixODBC 正在运行。
代码目前非常简单,并且很容易在 REPL 中重现:
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。
有人做过吗?
【问题讨论】:
标签: python odbc pyodbc netezza