@@ -158,10 +158,11 @@ def testUpdateMultipleRows(self):
158
158
159
159
def testUpdateMultipleRowsExecuteMany (self ):
160
160
"test update multiple rows with DML returning (executeMany)"
161
+ data = [(i , "The initial value of string %d" % i ) \
162
+ for i in range (1 , 11 )]
161
163
self .cursor .execute ("truncate table TestTempTable" )
162
- for i in range (1 , 11 ):
163
- self .cursor .execute ("insert into TestTempTable values (:1, :2)" ,
164
- (i , "The initial value of string %d" % i ))
164
+ self .cursor .executemany ("insert into TestTempTable values (:1, :2)" ,
165
+ data )
165
166
intVar = self .cursor .var (cx_Oracle .NUMBER , arraysize = 3 )
166
167
strVar = self .cursor .var (str , arraysize = 3 )
167
168
self .cursor .setinputsizes (None , intVar , strVar )
@@ -238,3 +239,18 @@ def testDeleteReturningDecreasingRowsReturned(self):
238
239
results .append (intVar .values )
239
240
self .assertEqual (results , [ [1 , 2 , 3 , 4 ], [5 , 6 , 7 ], [8 , 9 ] ])
240
241
242
+ def testDeleteReturningNoRowsAfterManyRows (self ):
243
+ "test delete returning no rows after initially returning many rows"
244
+ data = [(i , "Test String %d" % i ) for i in range (1 , 11 )]
245
+ self .cursor .execute ("truncate table TestTempTable" )
246
+ self .cursor .executemany ("insert into TestTempTable values (:1, :2)" ,
247
+ data )
248
+ intVar = self .cursor .var (int )
249
+ self .cursor .execute ("""
250
+ delete from TestTempTable
251
+ where IntCol < :1
252
+ returning IntCol into :2""" , [5 , intVar ])
253
+ self .assertEqual (intVar .values , [1 , 2 , 3 , 4 ])
254
+ self .cursor .execute (None , [4 , intVar ])
255
+ self .assertEqual (intVar .values , [])
256
+
0 commit comments