diff --git a/django/db/backends/base/features.py b/django/db/backends/base/features.py
index d749173..46ad9dc 100644
--- a/django/db/backends/base/features.py
+++ b/django/db/backends/base/features.py
@@ -68,12 +68,6 @@ class BaseDatabaseFeatures(object):
     # by returning the type used to store duration field?
     supports_temporal_subtraction = False
 
-    # Does the database driver support timedeltas as arguments?
-    # This is only relevant when there is a native duration field.
-    # Specifically, there is a bug with cx_Oracle:
-    # https://bitbucket.org/anthony_tuininga/cx_oracle/issue/7/
-    driver_supports_timedelta_args = False
-
     # Do time/datetime fields have microsecond precision?
     supports_microsecond_precision = True
 
diff --git a/django/db/backends/oracle/base.py b/django/db/backends/oracle/base.py
index 2e6f02c..dd60cc6 100644
--- a/django/db/backends/oracle/base.py
+++ b/django/db/backends/oracle/base.py
@@ -344,11 +344,6 @@ class OracleParam(object):
                 param = param.astimezone(timezone.utc).replace(tzinfo=None)
             param = Oracle_datetime.from_datetime(param)
 
-        if isinstance(param, datetime.timedelta):
-            param = duration_string(param)
-            if ' ' not in param:
-                param = '0 ' + param
-
         string_size = 0
         # Oracle doesn't recognize True and False correctly in Python 3.
         # The conversion done below works both in 2 and 3.
diff --git a/django/db/backends/oracle/operations.py b/django/db/backends/oracle/operations.py
index b800339..0d235ff 100644
--- a/django/db/backends/oracle/operations.py
+++ b/django/db/backends/oracle/operations.py
@@ -97,6 +97,9 @@ WHEN (new.%(col_name)s IS NULL)
         """
         return "NUMTODSINTERVAL(%06f, 'SECOND')" % (timedelta.total_seconds()), []
 
+    def format_for_duration_arithmetic(self, sql):
+        return "NUMTODSINTERVAL(%s / 1000000, 'SECOND')" % sql
+
     def date_trunc_sql(self, lookup_type, field_name):
         # http://docs.oracle.com/cd/B19306_01/server.102/b14200/functions230.htm#i1002084
         if lookup_type in ('year', 'month'):
diff --git a/django/db/models/expressions.py b/django/db/models/expressions.py
index 5c137ed..3add089 100644
--- a/django/db/models/expressions.py
+++ b/django/db/models/expressions.py
@@ -600,8 +600,7 @@ class Value(Expression):
 class DurationValue(Value):
     def as_sql(self, compiler, connection):
         connection.ops.check_expression_support(self)
-        if (connection.features.has_native_duration_field and
-                connection.features.driver_supports_timedelta_args):
+        if connection.features.has_native_duration_field:
             return super(DurationValue, self).as_sql(compiler, connection)
         return connection.ops.date_interval_sql(self.value)
 
