ORA-26674 Propagating Milliseconds Value In Timestamp Data Type To Sybase Using Streams (Doc ID 416248.1)

Last updated on FEBRUARY 08, 2017

Applies to:

Oracle Database Gateway for Sybase - Version 10.2 and later
Oracle Database - Enterprise Edition - Version 10.2.0.1 and later
Information in this document applies to any platform.


Goal

Oracle RDBMS 10.2.0.1.0
Streams one-way replication to foreign datastore Sybase
Oracle Transparent Gateway for Sybase 10.2

Transparent Gateway for Sybase is not handling TIMESTAMP data. Any column in Sybase with datatype
datetime is mapped to an Oracle date which loses the time and the milliseconds.
When used in Streams environment and replicating timestamp to datetime, the error received is:

DBA_APPLY_ERROR = ORA-26714: User error encountered while applying
ORA-26674: Column mismatch in '<object_name' (LCR: TS type =TIMESTAMP; DB: TS type=DATE)

The current workaround:

Convert table_a to table_a_shadow at SYBASE side
Create view on top of table_a_shadow at SYBASE side (needed to case the varchar field as DATETIME)

Question:

Is it possible to have a custom rule based transformation created in Streams to map the timestamp
datatype in Oracle as varchar2 (using convertvarchar function) and populate the datetime field in
Sybase?

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms