closeResource method
Close the LOB resource and flush buffered writes
Flushes any buffered writes to the database and closes the LOB resource. Must be called after openResource() to ensure all writes are persisted.
Example:
await lob.openResource();
await lob.write('Large data...');
await lob.closeResource(); // Flushes buffered writes
Implementation
Future<void> closeResource() async {
_ensureNotDisposed();
if (!_resourceOpen) {
return; // Not open
}
final result = _dpiOracle.dpiLob_closeResource(_lobPtr);
if (result == DPI_FAILURE) {
final errorInfo = _memoryManager.allocate<dpiErrorInfo>(sizeOf<dpiErrorInfo>());
_dpiOracle.dpiContext_getError(_context, errorInfo);
final errorMsg = StringUtils.fromNativeUtf8(errorInfo.ref.message.cast<Char>());
throw OracleException(
'Failed to close LOB resource',
errorMessage: errorMsg,
);
}
_resourceOpen = false;
}