close method

Future<void> close()

Close the statement

Implementation

Future<void> close() async {
  if (_disposed) {
    return;
  }

  try {
    // Release any tracked LOB variables
    for (final lobVar in _lobVars) {
      try {
        _dpiOracle.dpiVar_release(lobVar);
      } catch (_) {
        // Best effort release
      }
    }
    _lobVars.clear();

    if (!PointerUtils.isNull(_statementPtr.value)) {
      _dpiOracle.dpiStmt_close(_statementPtr.value, nullptr, 0);
    }
  } catch (e) {
    // Best effort close
  } finally {
    _disposed = true;
    _memoryManager.dispose();
  }
}