Migrating Sybase "timestamp" data type to Oracle DB
644524Jun 25 2009 — edited Jul 7 2009Hi,
We are migrating huge Application currently running on Sybase database
to Oracle 10.2.0.3 (500+ Tables and Stored Procedures).
Have following questions regarding this Migration.
1) Many of the Sybase Tables have column which is of Sybase data type "timestamp".
Do you have any recommendation what is the data type to be used in Oracle for
migrating "timestamp" data type in Sybase?
2) How should we migrate existing data and business logic residing in Sybase for
data columns of Sybase data type "timestamp" ?
Given below are details on how we use Sybase timestamp Column in our Application
and we are trying to arrive at the best Solution that is possible for migrating
all those Tables and related business logic to Oracle.
We have following Control Table in Sybase which has column of timestamp data type and
some other Business keys.
sp_help EQP_IES_CRE_TIMESTAMP (This is similar to desc <table> command in Oracle)
EQP_IES_CRE_TIMESTAMP,dbo,user table
default,Nov 14 2001 10:39AM
CRE_TIMESTAMP ,timestamp,8,,,0,,,,0
REF_NUM ,char,30,,,0,,,,0
REC_UPD_DT ,datetime,8,,,1,,,,0
EQP_IES_CRE_TIMESTAMPI1,clustered, unique located on default, CRE_TIMESTAMP, REF_NUM, REC_UPD_DT,0,0,0,
Following is the overall logic used in Sybase
-- Step 1: Based on Event, populate Control Table with new Row.
-- CRE_TIMESTAMP timestamp Column gets auto-populated by Sybase
--
insert EQP_IES_CRE_TIMESTAMP (REF_NUM, REC_UPD_DT)
values (@uuid_ref_num, @event_cre_dt)
Since CRE_TIMESTAMP is auto-populated, it does not appear in above INSERT statement.
-- Step 2: Store timestamp value populated by Sybase in previous step,
-- to variable @event_timestamp. This value would be referenced
-- later in other SQL statements
select @event_timestamp = CRE_TIMESTAMP
from EQP_IES_CRE_TIMESTAMP
where REF_NUM = @uuid_ref_num
and REC_UPD_DT = @event_cre_dt
-- Sample value for @event_timestamp could be '001c0000182f2089'
-- It is not very readable or understandable
-- Step 3: Delete Control Table entry made in Step 1
delete EQP_IES_CRE_TIMESTAMP from EQP_IES_CRE_TIMESTAMP
where CRE_TIMESTAMP = @event_timestamp
-- Step 4: Make use of saved timestamp value from Step 2 to trigger queries
-- against other Tables that have timestamp Columns
-- Some sample queries are as shown below
delete eqp_staging
where event_timestamp > @event_timestamp;
insert into eqp_movement values(@event_timestamp, ......other columns) ;
Any idea how above Table and logic could be migrated to Oracle DB
We would also like to know how data values that currently exist
in Sybase Tables should be populated in Oracle .
Any suggestions or tips would be greatly appreciated
Thanks
Auroprem