Opened 12 years ago
Closed 12 years ago
#18941 closed Bug (needsinfo)
django.db.backends.oracle reported ORA-01882: timezone region not found
Reported by: | Owned by: | nobody | |
---|---|---|---|
Component: | Database layer (models, ORM) | Version: | 1.4 |
Severity: | Normal | Keywords: | db oracle |
Cc: | Triage Stage: | Unreviewed | |
Has patch: | no | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description
this seem to be a problem on line 487 of django.db.oracle.base.py:
cursor.execute("ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS'"
" NLS_TIMESTAMP_FORMAT = 'YYYY-MM-DD HH24:MI:SS.FF'"
" NLS_TERRITORY = 'AMERICA'"
line487 ===> + (" TIME_ZONE = 'UTC'" if settings.USE_TZ else ))
Repro of the issue:
The bug will happen when I have "USE_TZ=True" in the project settings (which is default), and I happen not to have UTC timezone on the oracle server, there is no way for me to change the TIME_ZONE settings, the only way is to turn off USE_TZ.
the fix can be having UTC as default, and read from settings instead of hard code here.
A default install of the free version Oracle XE, which is the most stripped down version of Oracle, has a definition of UTC by default. I assume that more complete versions of Oracle also do.
Did you remove it?
(If we really want to change something, we can use '+00:00' instead of 'UTC', or we can document that a definition of the UTC timezone is required; but this certainly doesn't justify Yet Another Setting.)