Purpose:LOBValueWriter is used to write a large size of object into an Oracle CLOB/BLOB column through Oracle LOB Locator. It's a work-around object for the well-known 4k write limits on an Oracle thin driver.
Responsibilities:
| Modifier and Type | Field and Description |
|---|---|
| private Accessor | |
| private Collection | |
| private boolean |
| Access | Constructor and Description |
|---|---|
| public |
| Modifier and Type | Method and Description |
|---|---|
| public void | |
| protected void | |
| public void | |
| private DatabaseCall | buildCallFromSelectStatementForLocator(SQLSelectStatement selectStatement, WriteObjectQuery writeQuery, DatabaseCall dbCall, AbstractSession session)
Build the sql call from the select statement for selecting the locator |
| private SQLSelectStatement | buildSelectStatementForLocator(WriteObjectQuery writeQuery, DatabaseCall call, AbstractSession session)
Build the select statement for selecting the locator |
| public void | fetchLocatorAndWriteValue(DatabaseCall dbCall, Object resultSet)
Fetch the locator(s) from the result set and write LOB value to the table |
| accessor | back to summary |
|---|---|
| private Accessor accessor | |
| calls | back to summary |
|---|---|
| private Collection<DatabaseCall> calls | |
| isNativeConnectionRequired | back to summary |
|---|---|
| private boolean isNativeConnectionRequired | |
| LOBValueWriter | back to summary |
|---|---|
| public LOBValueWriter(Accessor accessor) This is the default constructor for the class. Bug 2804663 - Each DatabaseAccessor will now hold on to its own instance of this class, hence a singleton pattern is not applicable. | |
| addCall | back to summary |
|---|---|
| public void addCall(Call call) Add original (insert or update) call to the collection | |
| buildAndExecuteCall | back to summary |
|---|---|
| protected void buildAndExecuteCall(DatabaseCall dbCall, AbstractSession session) | |
| buildAndExecuteSelectCalls | back to summary |
|---|---|
| public void buildAndExecuteSelectCalls(AbstractSession session) Build and execute the deferred select calls. | |
| buildCallFromSelectStatementForLocator | back to summary |
|---|---|
| private DatabaseCall buildCallFromSelectStatementForLocator(SQLSelectStatement selectStatement, WriteObjectQuery writeQuery, DatabaseCall dbCall, AbstractSession session) Build the sql call from the select statement for selecting the locator | |
| buildSelectStatementForLocator | back to summary |
|---|---|
| private SQLSelectStatement buildSelectStatementForLocator(WriteObjectQuery writeQuery, DatabaseCall call, AbstractSession session) Build the select statement for selecting the locator | |
| fetchLocatorAndWriteValue | back to summary |
|---|---|
| public void fetchLocatorAndWriteValue(DatabaseCall dbCall, Object resultSet) throws SQLException Fetch the locator(s) from the result set and write LOB value to the table | |