/** * INTERNAL: * Get a TIMESTAMPTZ value from a result set. */ public Object getTIMESTAMPTZFromResultSet(ResultSet resultSet, int columnNumber, int type, AbstractSession session) throws java.sql.SQLException { TIMESTAMPTZ tsTZ = (TIMESTAMPTZ)resultSet.getObject(columnNumber); //Need to call timestampValue once here with the connection to avoid null point //exception later when timestampValue is called in converObject() if ((tsTZ != null) && (tsTZ.getLength() != 0)) { Connection connection = getConnection(session, resultSet.getStatement().getConnection()); //Bug#4364359 Add a wrapper to overcome TIMESTAMPTZ not serializable as of jdbc 9.2.0.5 and 10.1.0.2. //It has been fixed in the next version for both streams Timestamp timestampToWrap = tsTZ.timestampValue(connection); TimeZone timezoneToWrap = TIMESTAMPHelper.extractTimeZone(tsTZ.toBytes()); return new TIMESTAMPTZWrapper(timestampToWrap, timezoneToWrap, this.isTimestampInGmt); } return null; }
/** * INTERNAL: * Get a TIMESTAMPTZ value from a result set. */ public Object getTIMESTAMPTZFromResultSet(ResultSet resultSet, int columnNumber, int type, AbstractSession session) throws java.sql.SQLException { TIMESTAMPTZ tsTZ = (TIMESTAMPTZ)resultSet.getObject(columnNumber); //Need to call timestampValue once here with the connection to avoid null point //exception later when timestampValue is called in converObject() if ((tsTZ != null) && (tsTZ.getLength() != 0)) { Connection connection = getConnection(session, resultSet.getStatement().getConnection()); //Bug#4364359 Add a wrapper to overcome TIMESTAMPTZ not serializable as of jdbc 9.2.0.5 and 10.1.0.2. //It has been fixed in the next version for both streams Timestamp timestampToWrap = tsTZ.timestampValue(connection); TimeZone timezoneToWrap = TIMESTAMPHelper.extractTimeZone(tsTZ.toBytes()); return new TIMESTAMPTZWrapper(timestampToWrap, timezoneToWrap, this.isTimestampInGmt); } return null; }
protected Object fromOracleTimeClasses(Column column, Object data) { try { if (data instanceof TIMESTAMP) { data = ((TIMESTAMP) data).timestampValue(); } else if (data instanceof DATE) { data = ((DATE) data).timestampValue(); } else if (data instanceof TIMESTAMPTZ) { final TIMESTAMPTZ ts = (TIMESTAMPTZ)data; data = ZonedDateTime.ofInstant(ts.timestampValue(connection.connection()).toInstant(), ts.getTimeZone().toZoneId()); } else if (data instanceof TIMESTAMPLTZ) { // JDBC driver throws an exception // final TIMESTAMPLTZ ts = (TIMESTAMPLTZ)data; // data = ts.offsetDateTimeValue(connection.connection()); return null; } } catch (SQLException e) { throw new RuntimeException("Couldn't convert value for column " + column.name(), e); } return data; }