ODI V.11 IKM Oracle Incremental KM is giving a performance bottle neck.

Hi All,
Well I am experimenting with different IKM's for Incrementally loading Target Table.
When i am using V.11 IKM Oracle Incremental update KM, Insert Flow into I$ table step is taking longer time than usual.
And when i do the same process using V.10 IKM Oracle Incremental update, this step Insert Flow into I$ table is finishing in no time.
Hard to believe this....
V.11 KM's should be faster than V.10 KM's right......
Is there any thing in V.11 KM's creating this issue????
Any help appreciated.
Thank you,
Mike.

I think the theory process changed to 'only bring things to the staging / collection layer that is not already in the target'. In some cases this makes sense.
It doesnt help on some of our interfaces so I've created a new option , true / false called 'USE_MINUS' then the minus clause on the IKM to this :
<% if ("1".equals(snpRef.getOption("USE_MINUS"))) { %>
     /* Minus set operator enabled in interface flow control options.*/     
minus
     select
     <%=odiRef.getColList("","[COL_NAME]", ",\n\t", "", "(((INS OR UPD) AND NOT TRG)AND REW)")%>
     ,'I'     IND_UPDATE
from     <%=odiRef.getTable("L", "TARG_NAME", "A")%>
<% } else { %>
     /* Minus set operator disabled in interface flow control options*/
<% } %>
This allows you to turn on / off on a per interface basis, just set the default to off, or delete the entire Minus part if you really dont want it (without any control to re-introduce it)
I wouldnt assume anything is supposed to be quicker from 10g to 11g, they are only code generators, how does Oracle know if it suits every customer implementation? Maybe the Merge from staging to the target is heavier than the Minus in some cases hence the behaviour not to bring anything in you already have.
Anyway hope the above helps.
Rgrds
Alastair

Similar Messages

  • Not able to see ikm oracle incremental update and ikm oracle slowly changing dimensions under PHYSCIAL tab in odi 12c

    not able to see ikm oracle incremental update and ikm oracle slowly changing dimensions under PHYSCIAL tab in odi 12c
    But i'm able to see other IKM's please help me, how can i see them

    Nope, It has not been altered.
    COMPONENT NAME: LKM Oracle to Oracle (datapump)
    COMPONENT VERSION: 11.1.2.3
    AUTHOR: Oracle
    COMPATIBILITY: ODI 11.1.2 and above
    Description:
    - Loading Knowledge Module
    - Loads data from an Oracle Server to an Oracle Server using external tables in the datapump format.
    - This module is recommended when developing interfaces between two Oracle servers when DBLINK is not an option.
    - An External table definition is created on the source and target servers.
    - When using this module on a journalized source table, the Journaling table is first updated to flag the records consumed and then cleaned from these records at the end of the interface.

  • Error in odi- IKM oracle incremental update

    hi,
    i am integrating Oracle to Oracle databse using ODI.
    i am using IKM Oracle Incremental Update and i am having the following error:
    ORA-01747: invalid user.table.column, table.column, or column specification
    for the description below
    update EBS.SY_NAMADD T
    set (
    ) =
    select
    from EBS.I$_SY_NAMADD S
    where T.NADCOD =S.NADCOD
    where (NADCOD)
    in (
    select NADCOD
    from EBS.I$_SY_NAMADD
    where IND_UPDATE = 'U'
    since in the SQL in the EST there is no column specify it gin=ving me this error.
    should i have specify it somewhere
    thanks a lot
    nazeedah

    hi,
    another error is taht when i set the control to Yes unser IKM and in the control tab i have chosen :CKM oracle.
    i am having an error while creating teh table below
    create table EBS.SNP_CHECK_TAB
    CATALOG_NAME VARCHAR2(100 CHAR) NULL ,
    SCHEMA_NAME VARCHAR2(100 CHAR) NULL ,
    RESOURCE_NAME VARCHAR2(100 CHAR) NULL,
    FULL_RES_NAME VARCHAR2(100 CHAR) NULL,
    ERR_TYPE VARCHAR2(1 CHAR) NULL,
    ERR_MESS VARCHAR2(250 CHAR) NULL ,
    CHECK_DATE DATE NULL,
    ORIGIN VARCHAR2(100 CHAR) NULL,
    CONS_NAME VARCHAR2(35 CHAR) NULL,
    CONS_TYPE VARCHAR2(2 CHAR) NULL,
    ERR_COUNT NUMBER(10) NULL
    error: missing parenthese
    please help
    nazeedah

  • Unusual behavior with 'IKM Oracle Incremental Update' knowledge module

    Hi All,
    We are getting strange behaviour in our PIP.We have following three scenarios in our PIP.
    1) LOAD_ORACLEEBIZ_PROCESSMFG_BULK_LOT_DATA_TO_PAS_PKG
    2) LOAD_ORACLEEBIZ_DISCRETEMFG_WORKORDER_DATA_TO_PAS_PKG
    3) LOAD_ORACLEEBIZ_PROCESSMFG_WORKORDER_DATA_TO_PAS_PKG
    we have a project variable PVV_GET_SCEN_NAME which will hold the scenario name in that package.
    we are trying to modify the 'IKM Oracle Incremental Update' knowledge module, we have written following code.this code will match the content of I$ table with target table based on various columns.if they are matching we will delete the matching rows from target table. But when we are executing scenario "LOAD_ORACLEEBIZ_PROCESSMFG_BULK_LOT_DATA_TO_PAS_PKG",then the wrong IF condition is getting matched in the following procedure.
    the condition that is getting matched is "ELSIF ('#ORACLEEBIZ_TO_PAS_PROJECT.PVV_GET_SCEN_NAME'='LOAD_ORACLEEBIZ_DISCRETEMFG_WORKORDER_DATA_TO_PAS_PKG') THEN".Actually the value of #ORACLEEBIZ_TO_PAS_PROJECT.PVV_GET_SCEN_NAME will be LOAD_ORACLEEBIZ_PROCESSMFG_BULK_LOT_DATA_TO_PAS_PKG.i am not sure why odi is matching this condition.
    Please provide your comments on this issue.thanks in advace.
    IKM step:
    BEGIN
    IF '#PVV_GET_SCEN_NAME'='LOAD_ORACLEEBIZ_PROCESSMFG_BULK_LOT_DATA_TO_PAS_PKG' THEN
    DELETE FROM <%=odiRef.getTable("L", "TARG_NAME", "W")%> WHERE (item_number,lot_number,source_system) IN
    (SELECT item_number,lot_number,source_system FROM <%=odiRef.getTable("L", "INT_NAME", "A")%>);
    COMMIT;
    ELSIF '#PVV_GET_SCEN_NAME'='LOAD_ORACLEEBIZ_DISCRETEMFG_WORKORDER_DATA_TO_PAS_PKG' THEN
    DELETE FROM <%=odiRef.getTable("L", "TARG_NAME", "W")%> WHERE (segment1,segment2,segment3,source_system,item_number) IN
    (SELECT segment1,segment2,segment3,source_system,item_number FROM <%=odiRef.getTable("L", "INT_NAME", "A")%>);
    COMMIT;
    ELSIF '#PVV_GET_SCEN_NAME'='LOAD_ORACLEEBIZ_PROCESSMFG_WORKORDER_DATA_TO_PAS_PKG' THEN
    DELETE FROM <%=odiRef.getTable("L", "TARG_NAME", "W")%> WHERE (segment2,source_system) IN
    (SELECT segment2,source_system FROM <%=odiRef.getTable("L", "INT_NAME", "A")%>);
    COMMIT;
    ELSE
    NULL;
    END IF;
    END;
    Thanks
    Baji

    Hi Himanshu,
    Thanks for your help.
    I gave fully qualified name,even then it didn't worked.
    - How are you deriving the value of variable
    project variable PVV_GET_SCEN_NAME is refreshing variable and it will get the value of scenario with the following sql query
    select SESS_NAME
    from <%=snpRef.getObjectName("L","SNP_SESSION","D")%>
    where SESS_NO = <%=snpRef.getSession("SESS_NO")%>
    -Log or store the value of variable as comment in IKM sql query using "-- #varvalue" and note the value is same as compared
    When i gave --#varvalue (or) --#ORACLEEBIZ_TO_PAS_PROJECT.PVV_GET_SCEN_NAME is doesnot display any thing.what i did is I changed the PVV_GEN_SCEN_NAME variable to hostorize variable to see correct value of that and after the executing the scenario,i can see the value as "LOAD_ORACLEEBIZ_PROCESSMFG_BULK_LOT_DATA_TO_PAS_PKG".I also tried same thing by changing technology to jython and i am able to see same value "LOAD_ORACLEEBIZ_PROCESSMFG_BULK_LOT_DATA_TO_PAS_PKG" for the PVV_GET_SCEN_NAME variable.
    Thanks
    Baji

  • Which is better: Oracle incremental update (merge) or Oracle incremental update

    Hi All,
    We have big data load happening from Oracle RDBMS(source) to Oracle RDBMS(target). The data is huge (in billions) and new insertions, updates will happen. I would like to understand which among
    Oracle incremental update (merge) or Oracle incremental update is better and faster -  for first load and subsequent incremental updates, deletes? I request you all to provide valid reasons since I need to present the same to my client
    If at all Oracle incremental update (merge) is better, then why ODI needs to have Oracle incremental update IKM.
    I have seen some discussions on the same topic but I have not yet got a proper response with reasons and that is why I am posting the question again
    Thanks & Regards,
    Sijee Sadasivan

    Hi Sijee Sadasivan,
    IKM SQL Control Append could be faster for the initial load. You will therefore need another interface for the initial load.
    From my experience IKM Oracle Incremental Update (Merge) is faster than IKM Oracle Incremental Update for the incremental load, but I think the best thing to do is to try it on your environment. Nothing is better than a benchmark .
    IKM Oracle Incremental Update is useful for Oracle RDBMS < 9i, before this syntax was introduced.
    Regards,
    JeromeFr

  • ODI extracto HFM to Oracle Table

    Hi,
    we are running a integration to extract data from HFM to an Oracle Table. The target Oracle Schema holds also the staging area when needed.
    We are planning to use IKM Oracle Incremental update but not sure if this is the best solution as it will create an unnecessary I$ table.
    Any suggestions?
    Thanks

    Hi,
    Why do you say the I$ table is unnecessary? Are you not going to be using flow control to check the quality of your data before loading into Oracle.
    If you do not require flow control as you are certain that your source data is quality perfect and you also have no data transformation in your interface (which normally would happen between C$ and I$), you can amend the knowledge module to load direct from the C$ table created in your LKM to your target table.
    If you are truncating/loading you could use IKM SQL Control Append, but again, this will create an I$ table.
    Cheers
    Bos

  • ODI - IKM Oracle Multi Table Insert

    Hi All,
    I am new to ODI, i tried to use "IKM Oracle Multi Table Insert", one interface generates query like
    insert  all
    when 1=1  then
    into BI.EMP_TOTAL_SAL
    *(EMPNO, ENAME, JOB, MGR, HIREDATE, TOTAL_SAL, DEPTNO)*
    values
    *(C1_EMPNO, C2_ENAME, C3_JOB, C4_MGR, C5_HIREDATE, C6_TOTAL_SAL, C7_DEPTNO)*
    select
    C1_EMPNO EMPNO,
    C2_ENAME ENAME,
    C3_JOB JOB,
    C4_MGR MGR,
    C5_HIREDATE HIREDATE,
    C6_TOTAL_SAL TOTAL_SAL,
    C7_DEPTNO DEPTNO
    from BI.C$_0EMP_TOTAL_SAL
    where (1=1)
    because of alias this insert fails. Could you please anyone explain what exactly happens and how to control the query genration?
    Thanks & Regards
    M Thiyagu

    What David is asking is for you to go to operator and review the failed task, copy the SQL and paste it up here, run the SQL in your sql client (Toad / SQL Developer) and try and ascertain what objects your missing causing your SQL Error.
    Have you followed the link posted above? Have you placed the interfaces in a package in the right order? Are you running the package as a whole or individual interfaces? I dont think the individual interfaces will work with this IKM as its designed for one to feed the other.
    Please detail the steps you've taken, how many interfaces you have and what options you have chosen in the IKM options for each interface - Its tricky to diagnose your problem and when you say "I can't understand what to do and how to do...
    So please give the step wise solution to do that interface.. or please give with an example.." it means a lot of people will ignore your post as we cant see any evidence of you trying!
    p.s I see you have resurected a thread from 2009 - 1) I dont think the multi-table insert KM was available with ODI at that time (10G) 2) The thread is answered / closed so not many people will look at it 3) Proceedurs should only really be used when you cant do it with an interface, you lose all the lovely lineage between objects with you get with an interface.
    Hope this helps - please post your setup , your error and how you have configured the interfaces and package so far.

  • ODI 10g oracle incremental update km issue

    Hi,
    I have an interface with straight oracle to oracle mapping and I'm using oracle incremental update km for the data flow.
    My target table has a pk and it is mapped to a source column that has duplicate date. I need to populate distinct columns of my source id to the target table pk column. I have mapped the column and checked distinct in the flow and unchecked update option. My interface run without any error but the problem,that i have is whenever I run the interface I'm getting an additional null row populated. Not sure why. Could someone please explain how this works
    Thanks a lot for your time!

    hi,
    another error is taht when i set the control to Yes unser IKM and in the control tab i have chosen :CKM oracle.
    i am having an error while creating teh table below
    create table EBS.SNP_CHECK_TAB
    CATALOG_NAME VARCHAR2(100 CHAR) NULL ,
    SCHEMA_NAME VARCHAR2(100 CHAR) NULL ,
    RESOURCE_NAME VARCHAR2(100 CHAR) NULL,
    FULL_RES_NAME VARCHAR2(100 CHAR) NULL,
    ERR_TYPE VARCHAR2(1 CHAR) NULL,
    ERR_MESS VARCHAR2(250 CHAR) NULL ,
    CHECK_DATE DATE NULL,
    ORIGIN VARCHAR2(100 CHAR) NULL,
    CONS_NAME VARCHAR2(35 CHAR) NULL,
    CONS_TYPE VARCHAR2(2 CHAR) NULL,
    ERR_COUNT NUMBER(10) NULL
    error: missing parenthese
    please help
    nazeedah

  • Errors not logged when IKM Oracle Multi Record Insert is selected

    Dear All,
    I am new in ODI 11g and I am facing the following problem:
    I created a package with 3 Interfaces with Oracle Multi Record Insert.
    In the first interface I load the source data to a temporary target
    In the second interface target#1 table is loaded using interface#1
    In the third interface target#2 is loaded using interface#1 and the multiple insert is executed and committed.
    This works correctly, but when a data error occurs (e.g. mandatory column is null), instead of the error being logged in the Error table, execution of the last interface fails with the following error:
    Caused By: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: cannot insert NULL into (<schema>.<table>.<column>)
    I noticed that when I use Oracle Incremental Update instead, the errors get logged correctly in the error table.
    Does anyone know what could be causing this?

    Hi Bhabani,
    Thanks for the reply.
    I am afraid that this is a major issue for me, I do not want to re-query the source table for each target table, but on the other hand I cannot fail the process for each invalid record and I need the logging.
    Can you think of a workaround for my use case?
    Thank you!

  • IKM oracle multi table insert

    Hii...Experts..
    How can I load data from a single source table to multiple target tables using IKM oracle multi table insert ???
    Please help me with an example.
    Regards

    What David is asking is for you to go to operator and review the failed task, copy the SQL and paste it up here, run the SQL in your sql client (Toad / SQL Developer) and try and ascertain what objects your missing causing your SQL Error.
    Have you followed the link posted above? Have you placed the interfaces in a package in the right order? Are you running the package as a whole or individual interfaces? I dont think the individual interfaces will work with this IKM as its designed for one to feed the other.
    Please detail the steps you've taken, how many interfaces you have and what options you have chosen in the IKM options for each interface - Its tricky to diagnose your problem and when you say "I can't understand what to do and how to do...
    So please give the step wise solution to do that interface.. or please give with an example.." it means a lot of people will ignore your post as we cant see any evidence of you trying!
    p.s I see you have resurected a thread from 2009 - 1) I dont think the multi-table insert KM was available with ODI at that time (10G) 2) The thread is answered / closed so not many people will look at it 3) Proceedurs should only really be used when you cant do it with an interface, you lose all the lovely lineage between objects with you get with an interface.
    Hope this helps - please post your setup , your error and how you have configured the interfaces and package so far.

  • Facing problem in loading table using IKM Oracle Slowly Changing Dimension

    Hi,
    I am facing problem in loading dimension table using IKM Oracle Slowly Changing Dimension
    Following is the setup :-
    SRC :- source_table (MSSQL)
    Staging :- staging_table (MSSQL)
    TRGT :- target_table (Oracle)
    -------- source_table
    group_id     int
    group_version_id     int
    name     varchar (255)
    description     varchar (255)
    comments     varchar (2000)
    ref_number     varchar (255)
    is_latest_version     decimal (5)
    is_deleted     decimal (5)
    --------- target_table
    id     number (38,0) - Mapped to <%=odiRef.getObjectName( "L" , "SEQ_NAME" , "D" )%>.nextval
              - Executed on target
              - defined the column as SK in model
    group_id     number (38,0) - defined the column as NK in model     
    group_version_id     number (38,0) - defined the column as NK in model     
    name     varchar (255) - undefined on the model description
    description     varchar (255) - Add row on change
    comments     varchar (2000) - Add row on change
    ref_number     varchar (255) - Add row on change
    is_latest_version     number (1,0) - Add row on change
    is_deleted     number (1,0) - Add row on change
    start_datetime     date     - SYSDATE
                   - Executed on target
                   - Starting Timestamp
    end_datetime     date     - NULL
                   - Executed on target
                   - End Timestamp
    I am using following KM's:-
         LKM SQL to SQL
         IKM Oracle Slowly Changing Dimension
         CKM SQL
    it gives me the following error -
    920:Invalid relational operator

    Hi,
    Yes, this is a run-time error. Currently I am debugging it by checking SNP_SESS_TXT_LOG based on sess_no ID.
    Now, I get the following error.
    I just see the following in the operator:-
    911 : 42000 : java.sql.BatchUpdateException: ORA-00911: invalid character
    911 : 42000 : java.sql.SQLException: ORA-00911: invalid character
    java.sql.BatchUpdateException: ORA-00911: invalid character
         at oracle.jdbc.driver.DatabaseError.throwBatchUpdateException(DatabaseError.java:342)
         at oracle.jdbc.driver.OraclePreparedStatement.executeBatch(OraclePreparedStatement.java:10720)
         at com.sunopsis.sql.SnpsQuery.executeBatch(SnpsQuery.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.execCollOrders(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTaskTrt(SnpSessTaskSql.java)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSqlC.treatTaskTrt(SnpSessTaskSqlC.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)
    So, I do not get any idea of the exact step that is causing failure.
    Is there any setting in the operator that I am missing on?

  • ORA-20001: Oracle error -20001: ORA-20001: Oracle error -14552: ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML has been detected in fnd_global.set_nls.set_parameter('NLS_LANGUAGE','AMERICAN'). has been detected in fnd_global.set

    ORA-20001: Oracle error -20001: ORA-20001: Oracle error -14552: ORA-14552: cannot perform a DDL, commit or rollback inside a query or DML has been detected in fnd_global.set_nls.set_parameter('NLS_LANGUAGE','AMERICAN'). has been detected in fnd_global.set_nls.
    this error generates everytime when i run a apex application
    i did call the package in session state with  dbms_session.set_nls('NLS_LANGUAGE','AMERICAN'); but still it shows the error in the report any solution please

    Hi Amrit
    Can you put the FND_GLOBAL calls in a pre map trigger/process rather than as part of the map?
    Cheers
    David

  • READ ME Before you decide to use IKM Oracle Multi-Insert in ODI 12c

    Ok, I've decided to write this to help out others who may be heading down this twisted mess and hope they can benefit from my pain.
    If using a sequence, do not use this IKM.
    The primary reason is Oracle's INSERT ALL statement is NOT atomic.  This means it WILL eventually give "ORA-02291: integrity constraint (XXX) violated - parent key not found" when it attempts to insert rows into the child table first.  To make it work, the constraint(s) in question must be disabled or set to deferred.  However, if either is done, there is no need to use the INSERT ALL because the multiple inserts can now be done in any order without error as long as everything is kosher at the time the constraint is enabled or set to immediate.  So the very fix for the IKM makes its use unnecessary.
    The second reason is it burns sequence numbers.  The IKM has a tendency of grabbing the filter (no matter how buried) right before it and putting it in the WHEN statement of the INSERT ALL.  This will burn sequence numbers because the rows are not filtered prior to being feed into the insert.  Not an issue for small rowsets, but for large rowsets or frequently run mappings the burn can be quite substantial.  This can be fixed by manipulating hints and/or the physical tab, but may result in poorer performance than just using a different IKM that doesn't burn sequence numbers.
    If you are doing anything else besides the multi-insert in the same mapping, beware!  This IKM does not allow ODI to respect the Target Load Order specified on the mapping.  I've found that it usually puts the multi-insert last in sequence.  It can be fixed by working on the physical tab, and making multiple targets but it also crashed several times when I was using it.  Additionally it resisted doing what seemed like simple tasks (like dragging multiple items at a time or trying to drag items off to the right of the execution units).  As I've said elsewhere, I think this is a bug and it will probably be fixed in the future.
    So my advice is avoid using this IKM at all costs.  Just disable or defer your constraints and use the other IKMs.
    BTW, if you want to defer the constraints, I've found you can set the On Connect command of the Physical topology to:
    ALTER SESSION SET CONSTRAINTS = DEFERRED
    and then select all the transactions in the list.  Trying it in the Begin Mapping Command of the mapping does not appear to work.
    Please let me know if I got anything wrong,
    Scott

    This is not the first instance of KM load strategy that has had the nasty side effect of burning sequence numbers - see the following:
    ODI Oracle Merge Incremental Update burns sequence values - jason's hyperion blog
    However, at least this one does now seem to have been modified to try and address this issue.

  • Change need in IKM SQL/Oracle incremental Update

    according to my requirement:
    IKM need to change as * DELETE existing records(NOt all some ) instead of update existing records *
    insert all records(simply dump)
    option change as:
    update and Insert -----> as------>DELETE & insert
    can anyone provide code to implement my logic...?

    Hi, as far as i understand your question you need to *" delete 1st then insert "* insted doing *"update and insert"*
    Here you create one extra step with the existing IKM. suppose name it "Delete records"
    in target tab
    delete from <%snpRef.getTable("L","TARG_NAME","A")%> where condition (put ur desired condition)
    selecte the schema refering to target,then select transaction 1-> commit
    1st part is done.Now come to the second step.
    In the existing ikm delete the step "flag rows for update","falg useles rows","update rows".
    Thats all.
    Thanks.

  • IKM MSSQL Incremental Update fails on SQL Server 2000 - Collation Problem

    I am having a problem where the the incremental update isn't cabable of updating the table it creates.
    In the Flag Rows to Update I get the following error message:
    446 : HY000 : java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot resolve collation conflict for equal to operation.
    java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot resolve collation conflict for equal to operation.
    Source Code is:
    update     S
    set     IND_UPDATE = 'U'
    from     SQRoracleStage..I$_tblOracleStage      S,     
         SQRoracleStage..tblOracleStage      T
    where     T.Occurance     = S.Occurance
    and     T.PlanName     = S.PlanName
    Oracle has suggested that the IKM be updated to include a COLLATE clause following the column name in the where clause.
    update S
    set IND_UPDATE = 'U'
    from <%=snpRef.getTable("L", "INT_NAME", "A")%> S,
    <%=snpRef.getTable("L", "TARG_NAME", "A")%> T
    where <%=snpRef.getColList("", "T.[COL_NAME]\t= S.[COL_NAME] COLLATE replace_with_server_collation_string", "\nand\t", "", "UK")%>
    However this code doesn't retrieve the collation string, but rather expects you to replace the replace_with_server_collation_sting with the value from the server.
    Being unfamiliar with SQL Server I would have expected that the model should be capable of determining this value, and that the code should look something similar to:
    update S
    set IND_UPDATE = 'U'
    from <%=snpRef.getTable("L", "INT_NAME", "A")%> S,
    <%=snpRef.getTable("L", "TARG_NAME", "A")%> T
    where <%=snpRef.getColList("", "T.[COL_NAME]\t= S.[COL_NAME] COLLATE <%=snpRef.getServerCollationString("L", "TARG_NAME", "A")%> ", "\nand\t", "", "UK")%>
    It seems as though since ODI creates the table dynamically it should be capable of doing an update to it without intervention.
    Has anyone found a work around for this issue?

    I found the error :)
    This is what happened:
    I copied the tables from the MS SQL Server model to my Oracle model and then generated the DDL, so this gave me a quick set of tables in Oracle identical to the MS SQL database. But what I didn't know was that with the reverse engineer from MS SQL the ODI tool set the primary key columns to READ ONLY (and thus my copied tables also had read only primary key columns). Read only is OK for a source table but devastating for my tables I must load. So when I removed the read only indicator from the Oracle target table pk columns I was again a happy camper !
    Thanks for being the one to talk to ! That really helped :)

Maybe you are looking for