Replication selective columns using oracle streams

Hi
I am basically replacing an mview by streams.
At source I have about 45 columns in a table. But at target I just need to replicate 7 columns. I am wondering if there is a way to configure streams such that a list of column is passed.
I know there are rule-based transformation available DBMS_STREAMS_ADM.DELETE_COLUMN. But wondering if there is an easy way to do it with out writing transformations for each column.
Thanks
N

Yes the major reasons to move from mview's are
- add column, delete column requires complete refresh of mviews at target, which runs for hours
- Any structural changes to table at source requires the entire application to be down as the source table very active. And so Cannot afford a down time to add , delete columns at source, so we use OTR (Online table redefinition) to do so, and OTR cannot be performed on tables that have mviews based on them.
Oracle Support recommended using Oracle Streams, but it also has its limitations with very few workaround available.
I know for streams too there is a limitation of OTR, but we can reinstantiate table after the otr is performed on the source , with add_column or delete_column transformations., and get the transformation going from where it stopped. ( Avoiding complete recreating of table at Target).

Similar Messages

  • Granularity of change rules in CDC (using Oracle streams) at columns level.

    Is it possible to implement granularity of change rules in CDC (using Oracle streams) at columns level.
    E.g. table abc with columns a1, b1, c1 where c1 is some kind of auditing column. I want to use CDC on table abc but want to ignore changes on c1.
    Is it possible? My other option is to split table abc into a child table that has the Primary key and c1 only but it needs additional table and joins.
    Thanks
    Shyam

    The requirement can be implemented by a simple trigger.
    You seem to plan to kill a mosquito by using a nuclear bomb.
    Sybrand Bakker
    Senior Oracle DBA

  • Capture Changes from Sql Server  using Oracle Streams  - Destination Oracle

    Is it possible to capture changes made to tables in Sql Server database and propagate the changes to Oracle Database using Oracle Streams and Heterogeneous Gateway. I see plenty of information about pushing data from Oracle to Sql server, but I haven't been able to find much information about going the other way. Currently we are using sql server 2005 replication to accomplish this. We are looking into the possibility of replacing it with streams.

    the brief understanding i have is that there is nothing out of the tin that Oracle provides to stream between SQL Server and Oracle. The senario is documented in Oracle docs however and says you need to implement the SQL Server side to grabe changes and submit to Oracle stream queues.
    i'm sure i've seen third parties who sell software to do this.
    If you know otherwise please let me know. Also wasn;t aware one could push from SQL Server to Oracle. Is this something only avail in SQL Server 2005 or does 200 also have it? How are you doing this?
    Cheers

  • RESETLOGS using Oracle Streams

    Hi all,
    I have lost my all my redo log files, i need to open the database and i think that i will need to use RESETLOGS option. I'm using Oracle Streams, do you think that if i use RESETLOGS the Streams will work fine after that???
    Tks,
    Paulo.

    Yes, it is. You may read my article (Note Id: 431430.1) on metalink, it address a similar issue.

  • Hot backup while using oracle streams

    Hi All,
    Stream replication is enabled for some tables in two way .for both DML and DDL operations ...
    Now we are process of taking the hotbackup of the database.
    Will the Alter tablespace begin backup will effect anything
    or do we have to add dbms_streams_adm.set_tag.
    And what else we need to add for the capture process or need to write some negative global rule for capture process.
    If anybody is using the streams and running hotbackup ,please Share the example ..
    Thanks In Advance for your reply ASAP

    If you use RMAN to do the hotbackup, you do not need to do "Alter tablespace begin backup" (assumes your database is in archivelog mode)

  • Select Column using Session Variable

    I have set a session variable to hold the name of a column
    dependent on who the user is. Is it possible to use a session
    variable to select a column in a database table? If so, how? Does
    it need a where statement?
    Something like this?:
    <cfquery name="rsSelectColumn" datasource="Test">
    SELECT Column 1, Column 2, Column 3 = Session Variable
    FROM tbl_data
    </cfquery>
    Thanks,
    Dave

    I think you want to do this, if the value in the session
    variable is the actual column name:
    <cfquery name="rsSelectColumn" datasource="Test">
    SELECT Column 1, Column 2, #Session Variable# AS Col3
    FROM tbl_data
    </cfquery>
    this way you can call any column stored in the session
    variable, and it will always be usable from the QUERY as COL3
    regardless of what column you used.
    If that is what you want to do - it IS that simple.
    Sometimes we over think things too much.

  • How to use a variable on columns using Oracle Data Integrator

    How to use a variable in oracle Data Integrator expically on colums.

    yes exactly,i selected update on new column,if i didn't select update on new colum then error is not coming regarding update.
    but this time error is coming on "insert new rows".
    java.lang.NullPointerException
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.bindSessVar(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.bindSessVar(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskPreTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandSession.treatCommand(DwgCommandSession.java)
         at com.sunopsis.dwg.cmd.DwgCommandBase.execute(DwgCommandBase.java)
         at com.sunopsis.dwg.cmd.e.i(e.java)
         at com.sunopsis.dwg.cmd.g.y(g.java)
         at com.sunopsis.dwg.cmd.e.run(e.java)
         at java.lang.Thread.run(Unknown Source).
    Can u please tell me what stpes i have to follow to solve this

  • How to select column used in parameter in sql

    Hi,
    I have one View in which I am calling Function,
    Below is the part of that Function. I am passing @Column_Name as parameter. I have total 3 Columns which I am using in my view form this function.
    Now I have one issue in this SQL Query, instead of taking values from 'Alle' (or 'MeAlle', 'CurrentMe')column, my select statement is taking 'Alle' as value. I tried with Dynamic SQL but didn't work out for me.
    Please help me on this below Query. Thanks in advance. 
    DECLARE @Column_Name varchar(max)
    SET @Column_Name = 'Alle' -- Alle, MeAlle, CurrentMe
    DECLARE @TempAlleMes TABLE 
    ( PId int NOT NULL,
      Id nvarchar(max) NULL,
      Name nvarchar(max) NULL
    INSERT INTO @TempAlleMes(PId,Id,Name)
    SELECT p.PId,  
    NullIf(SubString(',' + @Column_Name + ',' , t.ID , CharIndex(',' , ',' + @Column_Name + ',' , t.ID) - t.ID) , '') , ''  
    FROM dbo.[Tally] t,[P_PsVs].dbo.[PInfo] p
    WHERE t.ID <= Len(',' + @Column_Name + ',')
    AND SubString(',' + @Column_Name + ',' , t.ID - 1, 1) = ','  
    AND CharIndex(',' , ',' + @Column_Name + ',' , t.ID) - t.ID > 0 
    and p.Pid = 302074
    select * from @TempAlleMes
    Vicky

    This is a terrible table design.
    Anyway, assuming you need to work with such design, you need to create fnSplit function in your database first. You can get any kind of implementation for such function, say, there is a blog by Jeff Moden that still has lots of discussion (I subscribed to
    that discussion and get emails - too bad they only say there is a new reply instead of giving the reply):
    http://www.sqlservercentral.com/articles/Tally+Table/72993/
    So, once you have that splitting function in your database you can normalize your table using the following:
    select T.*, F.Value, F.Id from myTable T CROSS APPLY dbo.fnSplit(T.Alle, ',') F
    If you need to split several columns, then it will be a bit more complex as you would need to split each individual column separately using the above code and cte and then use the FULL JOIN based on main table PK and function's ID column to join the results.
    For every expert, there is an equal and opposite expert. - Becker's Law
    My blog
    My TechNet articles

  • To upload a PDF file in BLOB column using Oracle Forms 9i

    Can anyone tell me how to upload a PDF file from client system using File dialog window and store its content in BLOB column in a table. The file to be uploaded will be in client side.

    Take a look at the following :
    Re: Storing a PDF in a BLOB
    Re: Retrive Image from DB into Image_item
    although the threads above are reffered to images and word doc... the procedure/steps are the same....
    Greetings...
    Sim

  • Can I use Oracle Stream from 10.2 to 10.1?

    I need to stream data from Oracle 10.2 --> 10.1.
    I'm not sure any concern?
    Can I do it, right?

    Yes, you can do it.
    Just remember to configure rules that discard incompatible changes (i.e. things that are supported in 10.2 but won't work in 10.1 should not be replicated).
    More about this:
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28321/strms_rules.htm#STRMS135

  • Partial replication of tables using streams

    I need to replicate a subset of master table (few columns) to another database. destination tables are read only. But this needs to happen in real time. I was using oracle streams to replicate entire table. To make it partial, can we have something like streams replicating materialized views from maser. Any clue on how can this be achived with better performance.

    The data needs to be replicated in a few seconds, if we run a materialized view on all the tables in seconds, will it not have a performace impact on the source database.Since some tables needs to be replicated entirely at real time we are using streams for those tables.Now to get a partial one, I am trying to create a rule set with delete_columns, rename_columns etc combination of dbms_rules package.
    Any links that could help this construction?
    Do you still feel that materialized viwe would be a better alternative to the problem, to replicate few columns of lot of tables in real time?

  • Difference Between Oracle Replication & Oracle Streams.

    Hi All,
    I am trying to evaluate Oracle Streams & Oracle Replication technologies.
    I need to know what are exact differences between 2 technologies? Advantages (if any) of using Oracle Streams against Oracle Replication.
    After reading Oracle Streams documentation, i found that it can capture DML as well as DDL changes, whereas Oracle Replication can capture DML changes.
    Can someone provide more information?
    Thanks in Advance.
    Regards,
    Vidyanand

    Oracle Replication is designed to replicate exact copies of data sets to various databases. Oracle Streams is designed to propagate individual data changes to various databases. Thus, Replication is probably easier if the end goal is to maintain identical copies of data, where Streams is easier if the end goal is to allow different databases to react differently to data changes.
    Oracle Replication is a significantly more mature product-- it is quite usable with older databases. Oracle Streams is a much newer technology and is only usable among different 9i databases. Most competent Oracle developers and DBA's are familiar with Oracle Replication, while many fewer have any real experience with Streams.
    The Streams architecture strikes me as a lot more flexible than Oracle Replication's. This leads me to suspect that Oracle will be pushing Streams over Replication in subsequent releases, so I would expect new features in Streams, like DDL changes, that aren't in Oracle Replication. Realistically, though, I don't expect any serious movement away from Replication for at least a few releases, so I wouldn't tend to be overly concerned on this front.
    Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Oracle stream two ways replication

    Hi all,
    I have a primary database and standby database. I'm using Oracle Stream for replication.
    I have a question.
    Can my standby database becomes primary and primary database becomes standby?
    Thank you!
    Dan.

    Thanks Arun,
    I've configured Bi-directional Replication on DB-11G-R2 by command and configured 1 way replication on Enterprise Manager but i failed to configure Bi-directional Replication on Enterprise Manager.
    Do you have document that guides steps by steps configuration Bi-directional Replication on Enterprise Manager?
    Brds,
    Dan.

  • Oracle Streams - Apply Rules

    I want to replicate two tables (A, B) using Oracle Streams from one database to another database using Oracle Streams. One column in table A contains salary information for Hourly employees and salaried employees. I do not want to replicate the salary information for salaried employees in the target system. Is there any way that I can set the salary to null for salaried employees at the same time applying any other changes to the table in the target database?
    Any advise is appreciated.

    yes i did..
    SQL> select name,queue_table from user_queues;
    NAME QUEUE_TABLE
    AQ$_STREAMS_QUEUE_TABLE_E STREAMS_QUEUE_TABLE
    STREAMS_QUEUE STREAMS_QUEUE_TABLE
    AQ$_SYS$SERVICE_METRICS_TAB_E SYS$SERVICE_METRICS_TAB
    SYS$SERVICE_METRICS SYS$SERVICE_METRICS_TAB
    AQ$_KUPC$DATAPUMP_QUETAB_E KUPC$DATAPUMP_QUETAB
    AQ$_AQ_PROP_TABLE_E AQ_PROP_TABLE
    AQ_PROP_NOTIFY AQ_PROP_TABLE
    AQ$_AQ_SRVNTFN_TABLE_E AQ_SRVNTFN_TABLE
    AQ_SRVNTFN_TABLE_Q AQ_SRVNTFN_TABLE
    AQ$_AQ_EVENT_TABLE_E AQ_EVENT_TABLE
    AQ_EVENT_TABLE_Q AQ_EVENT_TABLE
    the second row in above table has entry..

  • Using oracle sequence in SQL Loader

    I'm using oracle sequence in control file of sql loader to load data from .csv file.
    Controlfile:
    LOAD DATA APPEND
    INTO TABLE PHONE_LIST
    FIELDS TERMINATED BY "," TRAILING NULLCOLS
    PHONE_LIST_ID "seqId.NEXTVAL",
    COUNTRY_CODE CHAR,
    CITY_CODE CHAR,
    BEGIN_RANGE CHAR,
    END_RANGE CHAR ,
    BLOCKED_FREE_FLAG CHAR
    Datafile:
    1516,8,9,9,B
    1517,1,1,2,B
    1518,8,9,9,B
    1519,8,9,9,B
    1520,8,9,9,B
    1521,8,9,9,B
    1) As first column uses oracle sequence, we have not defined that in datafile.
    This gives me error "Can not insert NULL value for last column"
    Is it mandatory to specify first column in datafile, even though we are using sequence?
    2) Another table is referencing PHONE_LIST_ID column (the one for which we using sequence) of this table as a foreign key.
    So is it possible to insert this column values in other table simultaneously? Sequence no. should be same as it is in first table...
    Kindly reply this on urgent basis....

    use BEFORE INSERT trigger
    with
    select your_seq.nextval into :new.id from dual;

Maybe you are looking for

  • Using a Counter as a start trigger to one or more tasks

    I am using the NI USB-6251. I want to configure a counter (e.g. Dev1/ctr0) at a user-specified frequency and the rising edge on this counter should act as a start trigger for an analog input task and a digital output task.  I've tried to do this by c

  • Query with a condition - Overall results row displays incorrect value

    Hi All, I have a bw query with top 40 conditions. However, The Overall Result Row Figures Do Not Equal The Sum of the Column Rows. Although the top condition is activated, the overall result still displays the overall result of the whole report. I ha

  • Parking and posting purchase invoices

    I have a requirement to park invoices of po where document type is zosm and account assignment is k? how to do it?

  • DAQMX 8.5 and windows XP

    I am installing Labview on a fresh hard drive and noticed that DAQMX is up to 8.5 for the release of Vista. Has anyone had any problems with this version and XP?

  • JVM for Wince 5.0

    I developed a Java program. I have swing-rmi in my program. Now I need a cheaper or free JVM for Wince 5.0 (Arm9 board). Can you help me?