private static String getResultSetValue(ResultSet rs, int index) throws SQLException {
        Object obj = rs.getObject(index);
        return (obj == null) ? null : convertUtilsBean.convert(obj);
    }
Retrieve a JDBC column value from a ResultSet, using the most appropriate
value type. The returned value should be a detached value object, not
having any ties to the active ResultSet: in particular, it should not be
a Blob or Clob object but rather a byte array respectively String
representation.
<p>
Uses the <code>getObject(index)</code> method, but includes additional
"hacks" to get around Oracle 10g returning a non-standard object for its
TIMESTAMP datatype and a <code>java.sql.Date</code> for DATE columns
leaving out the time portion: These columns will explicitly be extracted
as standard <code>java.sql.Timestamp</code> object.

@param rs is the ResultSet holding the data
@param index is the column index
@return the value object
@throws SQLException if thrown by the JDBC API
@see java.sql.Blob
@see java.sql.Clob
@see java.sql.Timestamp
node/etl/src/main/java/com/alibaba/otter/node/etl/common/db/utils/SqlUtils.java