Package io.debezium.connector.oracle
Class OracleValueConverters
- java.lang.Object
-
- io.debezium.jdbc.JdbcValueConverters
-
- io.debezium.connector.oracle.OracleValueConverters
-
- All Implemented Interfaces:
ValueConverterProvider
public class OracleValueConverters extends JdbcValueConverters
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.debezium.jdbc.JdbcValueConverters
JdbcValueConverters.BigIntUnsignedMode, JdbcValueConverters.DecimalMode
-
-
Field Summary
Fields Modifier and Type Field Description private OracleConnectionconnectionprivate static StringEMPTY_BLOB_FUNCTIONprivate static StringEMPTY_CLOB_FUNCTIONprivate static ZoneIdGMT_ZONE_IDprivate static StringHEXTORAW_FUNCTION_ENDprivate static StringHEXTORAW_FUNCTION_STARTprivate static PatternINTERVAL_DAY_SECOND_PATTERNprivate booleanlobEnabledprivate static DateTimeFormatterTIMESTAMP_AM_PM_SHORT_FORMATTERprivate static DateTimeFormatterTIMESTAMP_FORMATTERprivate static DateTimeFormatterTIMESTAMP_TZ_FORMATTERprivate static PatternTO_DATEprivate static PatternTO_TIMESTAMPprivate static PatternTO_TIMESTAMP_TZ-
Fields inherited from class io.debezium.jdbc.JdbcValueConverters
adaptiveTimeMicrosecondsPrecisionMode, adaptiveTimePrecisionMode, bigIntUnsignedMode, binaryMode, decimalMode, logger
-
-
Constructor Summary
Constructors Constructor Description OracleValueConverters(OracleConnectorConfig config, OracleConnection connection)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected ObjectconvertBinary(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data, CommonConnectorConfig.BinaryHandlingMode mode)private byte[]convertBlobChunkList(BlobChunkList chunks)protected ObjectconvertBoolean(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)Converts a value object for an expected JDBC type ofTypes.BOOLEAN.protected ObjectconvertDecimal(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertDouble(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)ValueConverterconverter(Column column, org.apache.kafka.connect.data.Field fieldDefn)protected ObjectconvertFloat(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertInteger(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertIntervalDaySecond(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertIntervalYearMonth(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertNumeric(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertNumericAsBigInteger(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertNumericAsInteger(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertNumericAsSmallInt(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertNumericAsTinyInt(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)private voidconvertOracleIntervalDaySecond(Object data, ResultReceiver r)private voidconvertOracleIntervalYearMonth(Object data, ResultReceiver r)protected ObjectconvertString(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertTimestampToEpochMicros(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertTimestampToEpochMillis(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertTimestampToEpochMillisAsDate(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertTimestampToEpochNanos(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertTimestampWithZone(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertTinyInt(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectconvertVariableScale(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)protected ObjectfromOracleTimeClasses(Column column, Object data)private StringgetHexToRawHexString(String hexToRawValue)Get theHEXTORAWfunction argument, removing the function call prefix/suffix if present.private ValueConvertergetNumericConverter(Column column, org.apache.kafka.connect.data.Field fieldDefn)private org.apache.kafka.connect.data.SchemaBuildergetNumericSchema(Column column)private booleanisHexToRawFunctionCall(String value)Returns whether the provided value is aHEXTORAWfunction, formatHEXTORAW('<hex>').private InstantresolveTimestampStringAsInstant(String data)org.apache.kafka.connect.data.SchemaBuilderschemaBuilder(Column column)private org.apache.kafka.connect.data.SchemaBuildervariableScaleSchema(Column column)-
Methods inherited from class io.debezium.jdbc.JdbcValueConverters
byteOrderOfBitType, convertBigInt, convertBinaryToBase64, convertBinaryToBytes, convertBinaryToHex, convertBit, convertBits, convertBits, convertDateToEpochDays, convertDateToEpochDaysAsDate, convertReal, convertRowId, convertSmallInt, convertTime, convertTimeToMicrosPastMidnight, convertTimeToMillisPastMidnight, convertTimeToMillisPastMidnightAsDate, convertTimeToNanosPastMidnight, convertTimeWithZone, convertValue, getTimePrecision, handleUnknownData, normalizeBinaryData, padLittleEndian, toBigDecimal, toByteBuffer, unexpectedBinary, withScaleAdjustedIfNeeded
-
-
-
-
Field Detail
-
INTERVAL_DAY_SECOND_PATTERN
private static final Pattern INTERVAL_DAY_SECOND_PATTERN
-
GMT_ZONE_ID
private static final ZoneId GMT_ZONE_ID
-
TIMESTAMP_FORMATTER
private static final DateTimeFormatter TIMESTAMP_FORMATTER
-
TIMESTAMP_AM_PM_SHORT_FORMATTER
private static final DateTimeFormatter TIMESTAMP_AM_PM_SHORT_FORMATTER
-
TIMESTAMP_TZ_FORMATTER
private static final DateTimeFormatter TIMESTAMP_TZ_FORMATTER
-
EMPTY_BLOB_FUNCTION
private static final String EMPTY_BLOB_FUNCTION
- See Also:
- Constant Field Values
-
EMPTY_CLOB_FUNCTION
private static final String EMPTY_CLOB_FUNCTION
- See Also:
- Constant Field Values
-
HEXTORAW_FUNCTION_START
private static final String HEXTORAW_FUNCTION_START
- See Also:
- Constant Field Values
-
HEXTORAW_FUNCTION_END
private static final String HEXTORAW_FUNCTION_END
- See Also:
- Constant Field Values
-
TO_TIMESTAMP
private static final Pattern TO_TIMESTAMP
-
TO_TIMESTAMP_TZ
private static final Pattern TO_TIMESTAMP_TZ
-
TO_DATE
private static final Pattern TO_DATE
-
connection
private final OracleConnection connection
-
lobEnabled
private final boolean lobEnabled
-
-
Constructor Detail
-
OracleValueConverters
public OracleValueConverters(OracleConnectorConfig config, OracleConnection connection)
-
-
Method Detail
-
schemaBuilder
public org.apache.kafka.connect.data.SchemaBuilder schemaBuilder(Column column)
- Specified by:
schemaBuilderin interfaceValueConverterProvider- Overrides:
schemaBuilderin classJdbcValueConverters
-
getNumericSchema
private org.apache.kafka.connect.data.SchemaBuilder getNumericSchema(Column column)
-
variableScaleSchema
private org.apache.kafka.connect.data.SchemaBuilder variableScaleSchema(Column column)
-
converter
public ValueConverter converter(Column column, org.apache.kafka.connect.data.Field fieldDefn)
- Specified by:
converterin interfaceValueConverterProvider- Overrides:
converterin classJdbcValueConverters
-
getNumericConverter
private ValueConverter getNumericConverter(Column column, org.apache.kafka.connect.data.Field fieldDefn)
-
convertString
protected Object convertString(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertStringin classJdbcValueConverters
-
convertBinary
protected Object convertBinary(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data, CommonConnectorConfig.BinaryHandlingMode mode)
- Overrides:
convertBinaryin classJdbcValueConverters
-
convertBlobChunkList
private byte[] convertBlobChunkList(BlobChunkList chunks) throws SQLException
- Throws:
SQLException
-
convertInteger
protected Object convertInteger(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertIntegerin classJdbcValueConverters
-
convertFloat
protected Object convertFloat(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertFloatin classJdbcValueConverters
-
convertDouble
protected Object convertDouble(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertDoublein classJdbcValueConverters
-
convertDecimal
protected Object convertDecimal(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertDecimalin classJdbcValueConverters
-
convertNumeric
protected Object convertNumeric(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertNumericin classJdbcValueConverters
-
convertNumericAsTinyInt
protected Object convertNumericAsTinyInt(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertNumericAsSmallInt
protected Object convertNumericAsSmallInt(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertNumericAsInteger
protected Object convertNumericAsInteger(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertNumericAsBigInteger
protected Object convertNumericAsBigInteger(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertBoolean
protected Object convertBoolean(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
Converts a value object for an expected JDBC type ofTypes.BOOLEAN.- Overrides:
convertBooleanin classJdbcValueConverters- Parameters:
column- the column definition describing thedatavalue; never nullfieldDefn- the field definition; never nulldata- the data object to be converted into aKafka Connect datetype; never null- Returns:
- the converted value, or null if the conversion could not be made and the column allows nulls
- Throws:
IllegalArgumentException- if the value could not be converted but the column does not allow nulls
-
convertTinyInt
protected Object convertTinyInt(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertTinyIntin classJdbcValueConverters
-
convertVariableScale
protected Object convertVariableScale(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertTimestampToEpochMillisAsDate
protected Object convertTimestampToEpochMillisAsDate(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertTimestampToEpochMillisAsDatein classJdbcValueConverters
-
convertTimestampToEpochMicros
protected Object convertTimestampToEpochMicros(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertTimestampToEpochMicrosin classJdbcValueConverters
-
convertTimestampToEpochMillis
protected Object convertTimestampToEpochMillis(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertTimestampToEpochMillisin classJdbcValueConverters
-
convertTimestampToEpochNanos
protected Object convertTimestampToEpochNanos(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertTimestampToEpochNanosin classJdbcValueConverters
-
convertTimestampWithZone
protected Object convertTimestampWithZone(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
- Overrides:
convertTimestampWithZonein classJdbcValueConverters
-
convertIntervalYearMonth
protected Object convertIntervalYearMonth(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertOracleIntervalYearMonth
private void convertOracleIntervalYearMonth(Object data, ResultReceiver r)
-
convertIntervalDaySecond
protected Object convertIntervalDaySecond(Column column, org.apache.kafka.connect.data.Field fieldDefn, Object data)
-
convertOracleIntervalDaySecond
private void convertOracleIntervalDaySecond(Object data, ResultReceiver r)
-
getHexToRawHexString
private String getHexToRawHexString(String hexToRawValue)
Get theHEXTORAWfunction argument, removing the function call prefix/suffix if present.- Parameters:
hexToRawValue- the hex-to-raw string, optionally wrapped by the function call, nevernull- Returns:
- the hex-to-raw argument, never
null.
-
isHexToRawFunctionCall
private boolean isHexToRawFunctionCall(String value)
Returns whether the provided value is aHEXTORAWfunction, formatHEXTORAW('<hex>').- Parameters:
value- the value to inspect and validate, may benull- Returns:
- true if the value is a
HEXTORAWfunction call; false otherwise.
-
-