| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.afcs.warts.handlers.DataHandlerSupport
org.afcs.warts.handlers.LobDataHandlerSupport
org.afcs.warts.handlers.OracleClobHandler
The OracleClobHandler class extends
 LobDataHandlerSupport and handles the reading and writing of CLOB
 data. The compilation and use of this code requires the availability of
 Oracle's proprietary JDBC drivers -- as of release 9.2.0.3 of their drivers,
 there is no way to write to CLOB columns without resorting to their
 non-standard API.
The object returned by loadValue(java.sql.ResultSet, int), and expected by
 bindValue() and printValue() is a
 stored in DataHighBitAnalysis
 instance, which ensures that encoding analysis is performed on all
 character data.
LICENSE: This code is released to the public domain and may be used for any purpose whatsoever without permission or acknowledgment.
| Constructor Summary | |
| OracleClobHandler(TableDescription tableDescription,
                  ColumnDescription columnDescription)Contructs a new instance for the specified table and column. | |
| Method Summary | |
|  void | bindNonNullValue(java.sql.PreparedStatement statement,
                 int variableIndex,
                 java.lang.Object value)This method binds an empty CLOB locator to the specified index in the specified statement. | 
|  int | getNullType()Oracle returns the constant java.sql.Types.OTHERfor CLOB
 columns, and bizarrely, this can not be used when binding null values
 in prepared statements. | 
|  boolean | isCharacterData()Always returns true. | 
|  java.lang.Object | loadValue(java.sql.ResultSet resultSet,
          int columnIndex)Returns a DataHighBitAnalysisinstance with the text loaded from the specified column from the specified
 result set, if non-null. | 
|  java.lang.String | printNonNullValue(java.lang.Object value)Returns a representation of the specified value (which should be a DataHighBitAnalysisinstance)
 that is appropriate for inclusion in a SQL script. | 
| protected  void | writeLobValue(java.sql.ResultSet results,
              java.lang.Object newLobValue)This method is responsible for writing the specified LOB value (which is a string) to the first column in the specified result set, which should contain a newly initialized CLOB locator. | 
| Methods inherited from class org.afcs.warts.handlers.LobDataHandlerSupport | 
| postProcessBind, requiresBindPostProcessing, requiresStreamedLoading | 
| Methods inherited from class org.afcs.warts.handlers.DataHandlerSupport | 
| getColumnDescription, getTableDescription, isNullHandler, loadBytesFromStream, logWrongValueTypeWarning, toString, verifyObjectIsString | 
| Methods inherited from class java.lang.Object | 
| clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | 
| Methods inherited from interface org.afcs.warts.handlers.DataHandler | 
| isNullHandler, postProcessBind, requiresBindPostProcessing, requiresStreamedLoading | 
| Constructor Detail | 
public OracleClobHandler(TableDescription tableDescription,
                         ColumnDescription columnDescription)
tableDescription - The table that the handler will be handling data
                   for.columnDescription - The column that this class will be processing
                   data for.| Method Detail | 
public void bindNonNullValue(java.sql.PreparedStatement statement,
                             int variableIndex,
                             java.lang.Object value)
                      throws java.sql.SQLException
bindNonNullValue in interface DataHandlerstatement - The statement to bind the value in.variableIndex - The index of the variable to bind.value - The value to bind to the statement (always ignored).
java.sql.SQLException - If a SQL error occurs during binding.public int getNullType()
java.sql.Types.OTHER for CLOB
 columns, and bizarrely, this can not be used when binding null values
 in prepared statements. This method overrides the default behaviour
 always returning java.sql.Types.CLOB. See my post to Oracle's JDBC forum for more information.
getNullType in interface DataHandlergetNullType in class DataHandlerSupportjava.sql.Types.CLOB.public boolean isCharacterData()
isCharacterData in interface DataHandlerisCharacterData in class DataHandlerSupport
public java.lang.Object loadValue(java.sql.ResultSet resultSet,
                                  int columnIndex)
                           throws java.sql.SQLException
DataHighBitAnalysis
 instance with the text loaded from the specified column from the specified
 result set, if non-null. The method used to load the string depends on
 whether the account configuration from which the table was loaded specifies
 that the account was to a UTF-8 database or not, with a binary load being
 done in non-UTF8 databases to ensure that non-ascii characters are
 properly obtained.
loadValue in interface DataHandlerresultSet - The result set to load data from.columnIndex - The index of the column to load data from.
java.sql.SQLException - If a SQL exception occurs while loading data.public java.lang.String printNonNullValue(java.lang.Object value)
DataHighBitAnalysis instance)
 that is appropriate for inclusion in a SQL script.
printNonNullValue in interface DataHandlervalue - The object value to print.
protected void writeLobValue(java.sql.ResultSet results,
                             java.lang.Object newLobValue)
                      throws java.sql.SQLException
writeLobValue in class LobDataHandlerSupportresults - The result set containing the CLOB locator.newLobValue - The new LOB value.
java.sql.SQLException - If a SQL error occurs during update.| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||