Tôi đang cố truy vấn cơ sở dữ liệu Teradata bằng Python với PyODBC. Kết nối với cơ sở dữ liệu được thiết lập ổn định; tuy nhiên, khi tôi cố gắng lấy kết quả, tôi đã gặp phải lỗi này "Không hợp lệ cho chữ thập phân: u ''". Xin vui lòng giúp đỡ.Vấn đề với truy vấn Teradata bằng Python/Pyodbc
Tôi đang trên RHEL6, với Python 2.7.3
Đây là đoạn mã và kết quả:
import pyodbc
sql = "select * from table"
pyodbc.pooling = False
cnx = pyodbc.connect("DRIVER={Teradata};DBCNAME=host;DATABASE=database; AUTHENTICATION=LDAP;UID=user;PWD=password", autocommit=True, ANSI=True)
cursor = cnx.cursor()
rows = cursor.execute(sql).fetchone()
InvalidOperation Traceback (most recent call last)
<ipython-input-25-f2a0c81ca0e4> in <module>()
----> 1 test.fetchone()
/usr/local/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/local/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''
Có vẻ như người lái xe đang mong đợi một số điểm cố định và lấy lại một chuỗi rỗng. Sơ đồ bảng của bạn trông như thế nào? Hàng nào nên trở về? – cmd
Cảm ơn câu hỏi của bạn - nó đã giúp tôi thiết lập kết nối cơ sở dữ liệu Teradata trong tập lệnh Python cần làm việc với các tập kết quả :). – Jubbles