netResultSet_.markLOBAsAccessed(column);
}
// Check for locator
int locator = locator(column);
if (locator > 0) { // Create locator-based LOB object
return new Clob(agent, locator);
}
// The Clob value has been sent instead of locator
int index = column - 1;
int dataOffset;
byte[] data;
Clob clob = null;
// locate the EXTDTA bytes, if any
data = findExtdtaData(column);
if (data != null) {
// data found
// set data offset based on the presence of a null indicator
if (!nullable_[index]) {
dataOffset = 0;
} else {
dataOffset = 1;
}
clob = new Clob(agent, data, charsetName_[index], dataOffset);
} else {
// the locator is not valid, it is a zero-length LOB
clob = new Clob(agent, "");
}
return clob;
}