Hello!
Trying to fetch long varchar2 column and get the following error:
cx_Oracle.DatabaseError: column at array pos 0 fetched with error: 1406
i.e. string buffer is not much enough to fetch the string.
# fragment of code...
myCon = cx_Oracle.connect(user, psw, dsn)
myCur = myCon.cursor()
myCur.execute("""
select COLUMN from TABLE where ID=1
""")
for record in myCur.fetchall():
# ...
Error is reproduced only if actual string value longer than half of
declared column size. For short strings all is ok.
If I print myCur.description, I get:
[('COLUMN', , 250, 250, 0, 0, 1)]
250 - declared column max size, but I guess cx_Oracle allocates only 250
bytes(!), so if my string longer than 125 chars (utf-8 national char
occupies > 1 byte) - I get the error.
Is it bug or what? Any suggestions?
Extra info:
OS - SuSE Linux 9.2
Client - Oracle Client 9.2.0.1.0
NLS_LANG="RUSSIAN_CIS.UTF8"
--
Best regards, Maxim Kuleshov
--
http://mail.python.org/mailman/listinfo/python-list