diff options
author | Mikhail Nacharov <mnach@yandex.ru> | 2017-02-07 09:49:31 +0500 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2017-02-09 18:47:08 -0500 |
commit | c4e2fc5d9872c9a0c9c052a2e124f8a9b87de9b4 (patch) | |
tree | 530e98c87e77d6c3922aa545ef0d309d7e9dac51 /django/db/backends/oracle/utils.py | |
parent | 965f678a39b79f8e0bdc8222df094916fd7f8ed4 (diff) | |
download | django-c4e2fc5d9872c9a0c9c052a2e124f8a9b87de9b4.tar.gz |
Fixed #22669 -- Fixed QuerySet.bulk_create() with empty model fields on Oracle.
Diffstat (limited to 'django/db/backends/oracle/utils.py')
-rw-r--r-- | django/db/backends/oracle/utils.py | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/django/db/backends/oracle/utils.py b/django/db/backends/oracle/utils.py index f958655f94..6c81d5cd7b 100644 --- a/django/db/backends/oracle/utils.py +++ b/django/db/backends/oracle/utils.py @@ -29,3 +29,27 @@ class Oracle_datetime(datetime.datetime): dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second, dt.microsecond, ) + + +class BulkInsertMapper: + BLOB = 'TO_BLOB(%s)' + DATE = 'TO_DATE(%s)' + INTERVAL = 'CAST(%s as INTERVAL DAY(9) TO SECOND(6))' + NUMBER = 'TO_NUMBER(%s)' + TIMESTAMP = 'TO_TIMESTAMP(%s)' + + types = { + 'BigIntegerField': NUMBER, + 'BinaryField': BLOB, + 'DateField': DATE, + 'DateTimeField': TIMESTAMP, + 'DecimalField': NUMBER, + 'DurationField': INTERVAL, + 'FloatField': NUMBER, + 'IntegerField': NUMBER, + 'NullBooleanField': NUMBER, + 'PositiveIntegerField': NUMBER, + 'PositiveSmallIntegerField': NUMBER, + 'SmallIntegerField': NUMBER, + 'TimeField': TIMESTAMP, + } |