getArrayDmlRowCounts method

Future<List<int>> getArrayDmlRowCounts()

Get array DML row counts

Returns the number of rows affected for each row when using array DML operations.

Implementation

Future<List<int>> getArrayDmlRowCounts() async {
  _ensureExecuted();

  final rowCountsPtr = _memoryManager.allocate<Pointer<Uint64>>(sizeOf<Pointer<Uint64>>());
  final numRowCounts = _memoryManager.allocate<Uint32>(sizeOf<Uint32>());

  final result = _dpiOracle.dpiStmt_getRowCounts(
    _statementPtr.value,
    numRowCounts,
    rowCountsPtr,
  );

  if (result == DPI_FAILURE) {
    return [];
  }

  final counts = <int>[];
  final count = numRowCounts.value;

  for (var i = 0; i < count; i++) {
    final rowCount = (rowCountsPtr.value + i).value;
    counts.add(rowCount);
  }

  return counts;
}