Implement MAX / JOIN in ODI 10g?

What is the approach for using MAX functions in ODI 10g? I need it to filter source data:
SELECT SRC_TAB.*       
FROM SRC_TAB
INNER JOIN
(SELECT MAX(COL1) COL1, COL2  FROM SRC_TAB GROUP BY COL2) B
ON SRC_TAB.COL1=B.COL1 AND SRC_TAB.COL2 = B.COL2
Luckily this issue has been addressed in ODI 11g.
Thank you.

That's not good especially when you have large volume of data.
In this case, in 10g it's better to rely on a underline view rather than 2 interfaces.

Similar Messages

  • Nested query / Rank in ODI 10g?

    How can be an nested query with analytical function (RANK() OVER) can be implemented in ODI 10g without using an external view?
    SELECT field1, field2, field3, field4, field5, field6, field7
    FROM
             (SELECT
              RANK() OVER (PARTITION BY  table1.field1, table1.field2, table1.field3 ORDER BY table1.field4 , table1.field5) alias_rank,
              field1, field2, field3, field4, field5, field6, field7
                    FROM table1
              ) subset_alias   
    WHERE subset_alias.alias_rank=10)

    You should get your answers from here
    http://www.business-intelligence-quotient.com/?tag=oracle-data-integrator-subqueries

  • ODI 10G getPAckage()

    Hi ,
    I want to write a procedure like this:
    DECLARE
    CURSOR C IS
    SELECT table_name FROM ALL_TABLES WHERE table_name LIKE 'TMP_<%=odiRef.getPackage("PACKAGE_NAME")%> %' AND owner='STG';
    R C%ROWTYPE;
    BEGIN
    OPEN C;
    LOOP
    FETCH C INTO R;
    EXIT WHEN C%NOTFOUND;
    BEGIN
    STG.DROP_TABLE(R.TABLE_NAME);
    EXCEPTION WHEN OTHERS THEN
    NULL;
    END;
    END LOOP;
    CLOSE C;
    END;
    But I guess it desn't exists odiRef.getPAckage("PACKAGE_NAME") method in odi 10g.How can ı get packagename ?
    Thx a lot

    If I understand, you've created an ODI procedure. And you have inserted this procedure as a step of an ODI package.
    And you want to retrieve the name of the package that contains this procedure.
    Is that right ?
    If so, you can find the name of the package that use this procedure by using a query on the work repository.
    Here's the query :
    select pack.pack_name as PACKAGE
    FROM
    odi_work.SNP_PACKAGE Pack
    inner join odi_work.SNP_STEP step on step.i_package = pack.i_package
    inner join odi_work.snp_trt proc on proc.i_trt = etape.i_trt
    WHERE proc.trt_name='enter the name of your procedure'
    You can write this query on the "SQL on source" tab of your procedure. And use the result on the "SQL on target" tab.
    In "target tab", you can write something like that :
    SELECT table_name FROM ALL_TABLES WHERE table_name LIKE 'TMP_:PACKAGE%> %' AND owner='STG';
    If you don't want to enter the name of procedure manually, I assume you can also retrieve it with "<%=odiRef.getStep("STEP_NAME")%>" method. But your step must have the same name than your procedure (this is the default behaviour)

  • Need clustering of ODI 10g

    Hi Gurus,
    We have a requirement in which we need to install Clustering (High Availability) for ODI 10g.
    Can anyone please help me regarding this issue ASAP.
    Any Help is Greatly Appreciable.
    Regards,
    Pavan Kumar.

    ODI 11g by itself does not have any failover mechanism, ODI uses the fail-over mechanism implemented by the Application Server under which ODI J2EE Agents will be running i.e. if we have an ODI J2EE agent deployed on Weblogic for instance.
    However, we can use the Load Balancing feature in ODI 10g or 11g to attain Pseudo High Availability, which can be implemented in the below mentioned steps,
    1.     On a specific host machine, define a "parent" Agent whose only function is to route ODI Scenario start-up commands to the appropriate "child" Agents.
    2.     Define more than one "child" Agent
    3.     For each "child" Agent on the cluster set the Concurrent Session Number parameter with a large value.
    4.     Open the Load balancing tab of the "parent" Agent and activate the checkbox for the "child" Agents on the cluster nodes (and not for the "parent" Agent itself). Limit the number of sessions on the "parent" Agent to (number of "child" Agents+2).
    5.     Route all ODI Scenario start-up commands and schedules to the "parent" Agent. This Agent will then forward ODI Scenarios to the most suitable child Agent
    Roles of the “Parent” agent:
         The "parent" Agent should be used to dispatch the executions on its "child" Agents that are alive or running.
         The "parent" Agent is able to detect that a "child" Agent is no longer running.
         Also, “parent” Agent is able to detect a "child" Agent that has just been started.
    Note however that, once an execution has started on Agent A, if Agent A "dies", the current execution will NOT be moved on another Agent.
    The "dying" execution should be manually pushed into the queue in order to have the "parent" Agent redistribute it on its still alive "child" Agents.
    One concern is the "parent" Agent:
         If it dies, the already distributed tasks will continue to be executed on the corresponding "child" Agent.
         If the "parent" Agent dies, it should be restarted as soon as possible, in order to keep the flow active.
         Given its very important role, it should be placed on a machine that has a high uptime coefficient. If the machine stops, the Agent should be restarted ASAP.
    Regards,
    Rickson Lewis
    http://www.linkedin.com/in/rickson

  • Hi, i want to implement a function in ODI

    hi, i am new to odi.
    i have created a project in odi which was very simple and only transfers data from one table to another.
    but now i want to implement a function in odi. i have the code for that function which is written in pl/sql.
    my function accepts some values that are used ahead in the function. now i dont know how to pass the values
    so can anyone plz tell me that how to pass values.
    regards,
    prateek.
    Edited by: user11116379 on May 21, 2009 1:37 AM

    If you want to call a PL/SQL function, you may want to do this in an ODI procedure. Take a look at the documentation which describes how to call a stored procedure, which is I think going to provide you the ability to execute your function.
    Functions can be called as a part of a mapping in an interface in ODI, just as you would normally use it as part of a select or insert statement.
    If you want to pass parameters into the execution of a task, you should use ODI's variables. Variables may be passed into the execution of a task, and the values from those variables can be used as a part of a mapping, resource name, filter etc.

  • Query  Regarding Updation/Migration of ODI 10g To ODI 11g.

    Hi All,
    Currently I am using ODI 10g Version & Repositories ( Work & Master) have been installed on Oracle database version "Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi"
    We are thinking to migrate from ODI 10g to ODI 11g Version 11.1.1.5 & i have some queries which are metioned below.
    1. Can we install ODI 11g Version 11.1.1.5 version with Repositories ( Work & Master) on Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi" or do i need to upgrade my database version to 11G?.
    2. If yes then, Can i upgrade or use exting Repositoires ( 10g one) for ODI 11g OR i have to create new Repositoires & move/migrate the objects of 10G repositories as mentioned in the Oracle installation doc.
    3. Currently I am using OBIEE 10g for reposrting purpose & if i switch to ODI 11g , Do i need to use OBIEE 11g?
    ODI gurus, I need your reponse ASAP & i have to share it on urgent basis.
    Thanks
    Edited by: neeraj_singh on May 15, 2013 9:58 PM

    neeraj_singh wrote:
    Hi All,
    Currently I am using ODI 10g Version & Repositories ( Work & Master) have been installed on Oracle database version "Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi"
    We are thinking to migrate from ODI 10g to ODI 11g Version 11.1.1.5 & i have some queries which are metioned below.
    1. Can we install ODI 11g Version 11.1.1.5 version with Repositories ( Work & Master) on Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi" or do i need to upgrade my database version to 11G?.You can install ODI 11.1.1.5 but you have to upgrade your repositories using upgrade assistant
    refer http://docs.oracle.com/cd/E23943_01/upgrade.1111/e12642/tasklist.htm#CIHGIDFG
    2. If yes then, Can i upgrade or use exting Repositoires ( 10g one) for ODI 11g OR i have to create new Repositoires & move/migrate the objects of 10G repositories as mentioned in the Oracle installation doc.No need to create new repositories. You just upgrade them. But you need to takecare of certain things as you are a 10g user. Refer below link for the prerequisite
    http://docs.oracle.com/cd/E23943_01/upgrade.1111/e12642/prevusers.htm
    3. Currently I am using OBIEE 10g for reposrting purpose & if i switch to ODI 11g , Do i need to use OBIEE 11g?Not clear about the question ?
    >
    ODI gurus, I need your reponse ASAP & i have to share it on urgent basis.
    Thanks
    Edited by: neeraj_singh on May 15, 2013 9:58 PM

  • Getting Error Out Of Memory while importing the work repository in ODI 10g

    I exported the work repository from topology of ODI 10g of one DB and tried importing it in the another ODI 10g topology of another DB.While importing i got the error 'Out of Memory' .
    Can somebody suggest me ,how to solve the heap size out of memory issue while importing in ODI 10g.
    Thanks in Advance.

    Hi,
    you have to post your question in ODI forum
    Data Integrator
    Suresh

  • How to understand the way OBIEE implements outer joins?

    Hello guys
    I have a few scenarios where I have to implement outer joins and inner joins between dimensions and facts..
    There are 2 ways as far as I know that allows me to implement outer joins in BMM layer.
    1, Join the Logical dim table A to Logical Fact table B using outer join. The modeling will look like the below:
    A Dim ---outer------B fact -----------inner----C Dim
    By this design, the query that selects columns from all 3 tables will look at this:
    select columns from ((B fact inner joins C on key1 = key2) left outer joins on A dim) on key3=key4)..
    2, Join logical dim table A to fact table B inside the LTS of fact B by mapping the LTS B to dim A using outer join. then join fact B to C:
    B fact (mapped to fact B outer join Dim A) ------------inner -------C dim
    By this design, the query that selects columns from all 3 tables will look at this instead:
    select columns from C, B left outer join A on key1=key2 where key3=key4
    Comparing these 2 queries, the first one seems to do inner joins first and then outer join the result set to Dim A, the second query seems to outer join Dim A first and the result set inner joins to Dim C..
    I ran the same report using these 2 different designs, and the data comes out very different. The report of the first query is much smaller than the report of the second query...
    Can anyone help me understand how OBIEE understands outer joins? The second query is so far giving the right result, however, I can't get rid of the outer join in the query even if not selecting columns from Dim A, which is impacting the performance of other reports without Dim A.
    Your inputs will be greatly appreciated
    Thanks
    Edited by: user7276913 on Apr 20, 2010 9:31 AM
    Edited by: user7276913 on Apr 20, 2010 9:31 AM

    Xcode is the IDE.
    Objective-C is the language typically used.
    There's lots of getting started stuff at https://developer.apple.com

  • Inner Join in oracle 10g

    Is it possible to use inner join in oracle 10g?

    SQL> select ename, dname
      2  from emp inner join dept
      3  on emp.deptno=dept.deptno;
    ENAME      DNAME
    SMITH      RESEARCH
    ALLEN      SALES
    WARD       SALES
    JONES      RESEARCH
    MARTIN     SALES
    BLAKE      SALES
    CLARK      ACCOUNTING
    SCOTT      RESEARCH
    KING       ACCOUNTING
    TURNER     SALES
    ADAMS      RESEARCH
    ENAME      DNAME
    JAMES      SALES
    FORD       RESEARCH
    MILLER     ACCOUNTING
    14 rows selected.
    SQL>

  • Left outer join in ODI

    I am trying to do left outer join in ODI for the source tables in SQLserver.
    I have created a join between 2 columns and made it left outer join by checking the box in join properties.
    It is not working as expected. In the query it just does T1.Col1=T2.col1 and makes it as equi join.
    Any suggestions?
    Thanks

    I have the same problem..
    For example:
    Interface:
    SOURCE: tbl_employee, tbl_positions
    TARGET: tbl_persons
    In ANSI SQL it would be:
    INSERT INTO tbl_persons (..., position_name)
    select ..., tbl_positions.name from tbl_employee left join tbl_positions on tbl_employee.pos_id = tbl_positions.id
    But when I execute Interface, inserted data as JOIN, didn't inserted "NULL" in position_name.
    "LEFT JOIN" is in Interface's script...
    How decide this problem?

  • ODI 10g - session keep a table locked

    Hi,
    We have a random issue, with ODI session that keep a lock on a table, even replication is finished and session becomes inactive
    It generated dead locks as a trigger has to update the target table.
    what happened :
    - user application create rows (13)
    - ODI scenario replicate the rows (contract table)
    - 2nd scenario based on same source with another sunscriber run a stored procedure to create records in another table (around 30, positions table)
    this 2nd locked the target table, and when the run of the procedure finished, and commited, the lock was not released
    - ODI replicate another table (price) 30mn later, a trigger on target update position table with new values
    ---> trigger failed with deadlock (ora 60)
    ---> ODI failed as the trigger raised back the error
    this issue happened after 10 hours of same activity without issue, chained lot of time, but suddenly the lock become persistent (more than 4 hours)
    what can I do?
    use ODI 10g 10.1.3.5.0 - RDBMS 10.2.0.4

    Hi !
    For small tables wich are mostly accessed with full table scan you can use
    ALTER TABLE <table_name> STORAGE (BUFFER_POOL KEEP);KEEP pool should be properly sized , setting will cause once the table is read oracle will avoid flushing it out from pool.
    T

  • Problem when exporting and importing project from odi 10g to odi 11g

    Hi,
    I want to migrate my project from odi 10g to odi 11g.
    But when i am importing the interface then it is giving the error of mising references .
    I have exported the project(without its child component),models
    (including my datastore),KM's,folder (without its child component),packages(with child components),interaces(with child components),procedures(with child components),variables from odi 10g.
    After exporting all these objects i imported all the objects with import type set as "Synonym mode insert" into odi 11g but when i imported the interface it is giving the error of missing references.
    Source technolgy is Oracle and target technolgy is Postgres.
    Topologies have been made in the ODI 11g same as in ODI 10g.
    Please help.

    You dont need to migrate the complete repository. You can migrate a project at a time into ODI 11.1.1.5.x
    You have to be careful while importing. You have to follow a sequence when importing.
    Empty Project -> KMs -> Models (with DB Stores) -> Variable -> Empty Folders -> Interfaces -> Procedures -> Packages ---- All in SYNONYM mode insert (no exceptions)
    And your repository id in 11g MUST be different from the one in 10g.

  • How to Implement Hireachical Queries in ODI?

    Hello All,
    Please let me know how to implement Hierarchical Queries in ODI 11.1.1.6.?
    Pls provide any example if possible.
    Thanks
    Ravikiran

    there is no native way to use hierarchical queries.
    you will have to modify KM
    It depends on your exact needs.

  • Physical Joins Difference Between 10G and 11G?

    Hi All, I have started using OBIEE 11G. Anybody please let me know is there any difference in applying physical joins in OBIEE 10G and 11G.
    I heard that we need to join Fact and Dim tables in reverse way in 11G.
    Thanks in Advance.

    # Fast-Start Failover for Maximum Performance Mode in a Data Guard Configuration
    # Compression of Redo Traffic (Only for Gap Resolution) Over the Network in a Data Guard Configuration
    # Real-Time Query Capability of Physical Standby Database
    # Fast Role Transitions in a Data Guard Configuration
    # Data Guard Integration, Simplification, and Performance
    # Dynamic Setting of Oracle Data Guard SQL Apply Parameters
    # Enhanced Data Guard Broker Based Management Framework
    # Histogram for Redo Transport Response Time in a Data Guard Configuration
    # Snapshot Standby
    # Strong Authentication for Data Guard Redo Transport
    # Enhanced DDL Handling in Oracle Data Guard SQL Apply
    # Enhanced Oracle RAC Switchover Support for Logical Standby Databases
    # Data Guard Logical Apply Completeness
    # Oracle Scheduler Support in Data Guard SQL Apply
    # Support Transparent Data Encryption (TDE) with Data Guard SQL Apply
    # Support XMLType Data Type (Only CLOB) in Data Guard SQL Apply
    # Virtual Private Database (VPD) Support in Data Guard SQL Apply
    See Also:
    Oracle Data Guard Concepts and Administration for details
    Ref. Oracle® Database New Features Guide
    11g Release 1 (11.1)
    Part Number B28279-01
    ~ Madrid

  • Install ODI 10g on  64 bit Windows 2008 server

    Can we install ODI 10g on 64 bit Windows 2008 server ? if so Please provide the me the link for download
    Edited by: user1137989 on Oct 27, 2010 10:51 PM

    If you are looking for 10g then scroll down in the link (http://www.oracle.com/technetwork/middleware/data-integrator/downloads/index.html) Oracle Data Integrator 10g (10.1.3.5.0) and select for Microsoft Windows (x86) and extract and install .
    11g comes in 32 and 64 bit version .
    32 bit version is
    Oracle Data Integrator 11g (11.1.1.3.0)
    for Microsoft Windows (x86)
    64 bit version is .
    Oracle Data Integrator Companion 11g (11.1.1.3.0)
    for All Platforms
    Hope this helps .

Maybe you are looking for

  • Backing up IPad to ext. hard drive

    How do I back up an IPad to a hard drive which will be connected to my IMac and using Time Machine?

  • Help required in F-30 transaction

    Hello All, I am having a problem while posting a document throught F-30 transaction. I am posting a RV type of document. I am not populating the assignment field (ZUONR from bseg table). But after completion of the entire transaction/posting the resu

  • System Preferences changing, Possible Compromised P/W

    nikdgr Re: Trojan BackDoor.Wirenet.2  Feb 15, 2014 1:25 AM (in response to Linc Davis) I was recently reviewing comments from Linc Davis and after replying was told it might be better to start a new discussion Ive been having issue with my MacBook Pr

  • ....dead iPod nano 2nd gen.. seriously...

    I have a big problem... this morning my iPod was fine, and I went to work (with my iPod in my pocket), and went on with my day... and when i got home, my ipod wouldnt turn on, and it has a fuly charged battery ... and when i try the "5 Rs" they dont

  • Reg database logical locks

    hii all,      I want to keep locks(logically) to the existing database records as my ztables(3 tables with 1 parent table,containing header data and 2 line item tables having the foreign key relationships with header table) are accessed at time by ma