Opened 11 years ago

Closed 10 years ago

#20879 closed Bug (fixed)

BinaryField doesn't work with Oracle on Python3

Reported by: Sławek Ehlert Owned by: nobody
Component: Database layer (models, ORM) Version: 1.6-beta-1
Severity: Normal Keywords: BinaryField Oracle Python3
Cc: shai@… Triage Stage: Accepted
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

I made a repo as a showcase of this bug https://bitbucket.org/slafs/test-django-binaryfield-oracle-py3

The test case in this repo is taken from Django testsuite.

The exception i'm getting is this:

django.utils.encoding.DjangoUnicodeDecodeError: 'utf-8' codec can't decode byte 0xfe in position 2: invalid start byte. You passed in b'\x00F\xfe' (<class 'bytes'>)

The problem is with handling Oracle params in django.db.backends.oracle.base.OracleParam class. I think I may have a solution on this.

Change History (3)

comment:1 by Shai Berger, 11 years ago

Cc: shai@… added

Hi, and thanks for your report.

I am looking forward to seeing what you come up with. Please also specify exactly which Python3 and Oracle versions you are working with -- there are known Unicode problems related to bugs in certain versions of Oracle (#20292).

Also, you should be aware that Oracle under Python3 is generally broken (#20725), so the problem may lie deeper than you think.

comment:2 by Tim Graham, 11 years ago

Triage Stage: UnreviewedAccepted
Type: UncategorizedBug

comment:3 by Shai Berger, 10 years ago

Resolution: fixed
Status: newclosed

Some related fixes were introduced in #22715. The Django test-suite passes on 1.7 and master with python3 and cx_Oracle 5.1.3; so I suspect this has been solved.

If this is not the case, please reopen.

Note: See TracTickets for help on using tickets.
Back to Top