How to purge tables using odi ???

hi,
I want to purge the Data in target table.my Data Policy is to only retain the only 90 days. I have to keep only 90 days data. How can i do this in ODI. I have only one DATE column.
Thanks,
Regards,
AMSII

If your existing date field can be used to identify the records to be purged, then you could simply create a procedure in ODI along the lines of
delete from <%=odiRef.getSchemaName( )%>.*your_table* where your_date_field < (sysdate - 90)
This is the simplest way, but be wary of your indexes on the table that they don't get too fragmented. You could also investigate using a daily partition startegy on the table which would enable you to drop partitions older than 90 days which would be much faster.

Similar Messages

  • How to read I$ table using ODI procedure

    Hi
    Can any one help me how to drop a I$ table from out sie of interface.
    I have tried below approches but no luck
    I have created ODI procedure with technology oracle and target logical schema (I$ tables are creating on target DB) with and with out begin and end;
    Approch 1:
    Given below code in ODi procedure
    drop table <%=odiRef.getTable("L", "INT_NAME", "W")%> <% if (new Integer(odiRef.getOption( "COMPATIBLE" )).intValue() >= 10 ) { out.print( "purge" ); }; %>
    Approch 2:
    drop table I$_<%=odiRef.getTable("L", "TARG_NAME", "A") %>;
    Approch 3:
    drop table <%=odiRef.getTable("L", "INT_NAME", "W")%> (but it is fetching target dtabase schema anme not I$ table)
    Please help me any other alternative way to drop a I$ table, more over this code should be unique for all interface
    Regards,
    Phanikanth

    Thanks bhabani,
    Actaul my requirement is some time my scenario is stoping due some issue at Merge Rows Step (I am using IKM Oracle Incremental Update(Merge) KM) when the next iteration starts it is thwoing and error at create flow table I$ step and error is table name is already exists, so i am doing is if the interface went failed I am storing those information in one table using ODI procedure (INF--ko-->ODI procedure) in same ODI procedure I want to call a I$ table to drop.
    Can you please provide the steps so it will very useful for me using Java variable.
    I have gievn a step as below on create I$ table step (after create I$ statement)
    <@ java.lang.String Idollertable = <%=odiRef.getTable("L", "INT_NAME", "W")%> ; @>
    I am calling Idollertable variable in ODI procedure which is ko>* of INF as <@=Idollertable@>
    Note: I have followed below approch
    ODI Procedure Code:
    drop table <@=Idollertable@>; --> *2nd approch*
    begin
    insert into ODI_EXECUTION_ERROR_DETAILS
    (SESSION_NO,
    SCENARIO_NAME,
    CONTEXT_NAME,
    ERR_MESSAGE,
    INSERT_COUNT,
    ERROR_COUNT)
    values
    <%=snpRef.getSession("SESS_NO")%>,
    '<%=odiRef.getPrevStepLog("STEP_NAME")%>',
    '<%=odiRef.getContext( "CTX_NAME" )%>',
    '<%=odiRef.getPrevStepLog("MESSAGE")%>',
    '<%=odiRef.getPrevStepLog("INSERT_COUNT")%>',
    '<%=odiRef.getPrevStepLog("ERROR_COUNT")%>'
    commit;
    drop table <@=Idollertable@>; --> * first approch *
    end;
    Please help me
    Regards,
    Phanikanth
    Edited by: Phanikanth on Mar 3, 2013 9:52 PM
    Edited by: Phanikanth on Mar 3, 2013 9:52 PM

  • Export the data with Alias from the alternative table using ODI

    Hi!
    How to export the data from Essbase with Alias from the alternative table using ODI?
    Thanks.

    Are you on 10.1.3.6.x? Then: http://john-goodwin.blogspot.com/2008/09/odi-series-part-2-agent.html
    Are you on 11g? Then: http://john-goodwin.blogspot.com/2010/12/managing-odi-11g-standalone-agents.html
    I will say with only a mild amount of shame and a large amount of gratitude that I installed both releases' agents through John's blog posts.
    Regards,
    Cameron Lackpour
    Edited by: CL on Jun 4, 2012 5:48 PM
    Whoops, had the same link in there twice.

  • Exporting Data Of an RDBMS Table to another RDBMS Table using ODI Functions

    Hi,
    I'm facing a problem while Exporting Data Of an RDBMS Table to another RDBMS Table using ODI User Functions.
    Name:- User_Func
    Group:- Training
    Syntax:- User_Func($(SrcField))
    Implementation Syntax:-
    (CASE
    WHEN $(SrcField) > 40000 THEN 'HIGH'
    WHEN $(SrcField) BETWEEN 30000 AND 40000 THEN 'MEDIUM'
    ELSE 'LOW'
    Linked Technology:-Oracle
    To map the GRADE column of my TARGET_EMPTABLE I write
    User_Func(SRC_TABLENAME.SALARY)
    using Expression Editor.
    I got the following error
    ODI-1227: Task ODI_FUNC_INTERFACE (Export) fails on the source ORACLE connection Source_DataServer.
    Caused By: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:947)
         at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1283)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1441)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3769)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3823)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1671)
         at oracle.odi.query.JDBCTemplate.executeQuery(JDBCTemplate.java:189)
         at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:89)
         at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:1)
         at oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:70)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:558)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:464)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
         at java.lang.Thread.run(Thread.java:619)
    and in code tab it is:-
    select     
         SRC_FUNC_TABLE.E_NUMBER     E_NUMBER,
         SRC_FUNC_TABLE.E_NAME     E_NAME,
         SRC_FUNC_TABLE.E_LOC     E_LOC,
         (CASE
    WHEN SRC_FUNC_TABLE.E_SAL > 40000 THEN 'HIGH'
    WHEN SRC_FUNC_TABLE.E_SAL BETWEEN 30000 AND 40000 THEN 'MEDIUM'
    ELSE 'LOW'
    )     E_GRADE
    from     SOURCE_SCHEMA.SRC_FUNC_TABLE SRC_FUNC_TABLE
    where     (1=1)
    Please Help

    Anindya Chatterjee wrote:
    Hi,
    I'm facing a problem while Exporting Data Of an RDBMS Table to another RDBMS Table using ODI User Functions.
    Name:- User_Func
    Group:- Training
    Syntax:- User_Func($(SrcField))
    Implementation Syntax:-
    (CASE
    WHEN $(SrcField) > 40000 THEN 'HIGH'
    WHEN $(SrcField) BETWEEN 30000 AND 40000 THEN 'MEDIUM'
    ELSE 'LOW'
    )Your CASE statement syntax is not correct
    It is missing an END key word
    It should be
    (CASE
    WHEN $(SrcField) > 40000 THEN 'HIGH'
    WHEN $(SrcField) BETWEEN 30000 AND 40000 THEN 'MEDIUM'
    ELSE 'LOW'
    END )
    Linked Technology:-Oracle
    To map the GRADE column of my TARGET_EMPTABLE I write
    User_Func(SRC_TABLENAME.SALARY)
    using Expression Editor.
    I got the following error
    ODI-1227: Task ODI_FUNC_INTERFACE (Export) fails on the source ORACLE connection Source_DataServer.
    Caused By: java.sql.SQLSyntaxErrorException: ORA-00905: missing keyword
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:462)
         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:405)
         at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:931)
         at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:481)
         at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:205)
         at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:548)
         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:217)
         at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:947)
         at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1283)
         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1441)
         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3769)
         at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3823)
         at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1671)
         at oracle.odi.query.JDBCTemplate.executeQuery(JDBCTemplate.java:189)
         at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:89)
         at oracle.odi.runtime.agent.execution.sql.SQLDataProvider.readData(SQLDataProvider.java:1)
         at oracle.odi.runtime.agent.execution.DataMovementTaskExecutionHandler.handleTask(DataMovementTaskExecutionHandler.java:70)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.processTask(SnpSessTaskSql.java:2913)
         at com.sunopsis.dwg.dbobj.SnpSessTaskSql.treatTask(SnpSessTaskSql.java:2625)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatAttachedTasks(SnpSessStep.java:558)
         at com.sunopsis.dwg.dbobj.SnpSessStep.treatSessStep(SnpSessStep.java:464)
         at com.sunopsis.dwg.dbobj.SnpSession.treatSession(SnpSession.java:2093)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$2.doAction(StartSessRequestProcessor.java:366)
         at oracle.odi.core.persistence.dwgobject.DwgObjectTemplate.execute(DwgObjectTemplate.java:216)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.doProcessStartSessTask(StartSessRequestProcessor.java:300)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor.access$0(StartSessRequestProcessor.java:292)
         at oracle.odi.runtime.agent.processor.impl.StartSessRequestProcessor$StartSessTask.doExecute(StartSessRequestProcessor.java:855)
         at oracle.odi.runtime.agent.processor.task.AgentTask.execute(AgentTask.java:126)
         at oracle.odi.runtime.agent.support.DefaultAgentTaskExecutor$2.run(DefaultAgentTaskExecutor.java:82)
         at java.lang.Thread.run(Thread.java:619)
    and in code tab it is:-
    select     
         SRC_FUNC_TABLE.E_NUMBER     E_NUMBER,
         SRC_FUNC_TABLE.E_NAME     E_NAME,
         SRC_FUNC_TABLE.E_LOC     E_LOC,
         (CASE
    WHEN SRC_FUNC_TABLE.E_SAL > 40000 THEN 'HIGH'
    WHEN SRC_FUNC_TABLE.E_SAL BETWEEN 30000 AND 40000 THEN 'MEDIUM'
    ELSE 'LOW'
    )     E_GRADE
    from     SOURCE_SCHEMA.SRC_FUNC_TABLE SRC_FUNC_TABLE
    where     (1=1)
    Please Help

  • How to export the alias (not the default alias table) using ODI?

    I met a problem.I set two alias tables in the outline of my essbase database.One of course is the default alias table.And the other i set the name conAlias.
    I want to export the members and the alias of conAlias(not the default). I tried this using ODI (LKM Hyperion Essbase MetaData to SQL) ,but only the default alias can be exported.so i want know what can i do.

    Hi Dileep,
    In your query you are not specified whether the SUM of entire internal table SALARY or break up SALARY.
    If you want just the SUM of the entire internal table SALARY.
    Try this code.
    begin of itab occurs 0,
      name(10),
      salary type i,
    end of itab.
    itab-name = 'ABC'. itab-salary = 25000.
    append itab.
    itab-name = 'CDF'. itab-salary = 50000.
    append itab.
    itab-name = 'FGH'. itab-salary = 30000.
    append itab.
    itab-name = 'LMN'. itab-salary = 35000.
    append itab.
    itab-name = 'QPR'. itab-salary = 40000.
    append itab.
    loop at itab.
      at last.                "  Note the control statement used here
        sum.
        write: 'The total salary is',itab-salary.
      endat.
    endloop.
    Regards,
    Smart

  • How to create table using mysql in LabVIEW

    Hii
               I am using mysql database Toolkit for my project.  In that how to New create a table. Is there any possiblilites to create a table using query...can u send a sample prg ... and inform which toolkit Vi to use....  

    The SQL syntax for creating a table is:
    CREATE TABLE table_name
    column_name1 data_type,
    column_name2 data_type,
    column_name3 data_type,
    )The toolkit has a funciton called DB Tools Create Table. That would be the obvious function to use if you don't want to execute a SQL query to create the table. The tooklit comes with examples. Have you looked at them? There's one called Create Database Table that  would seem to be exactly what you are looking for.

  • Create target table using ODI model

    Hi all,
    I am new to ODI. I am trying export RDBMS table to RDBMS table from source to target.
    whether we need to create target table structure in trg schema or we can create using obi trg model by selecting new datastore.
    In owb while loading target tables are created and data will be loaded.
    Pls help me regarding this.
    thanks in advance.

    Hi
    You can create it in both ways.if you create datastore by using ODI you must select create target table option in flow while loading to target.

  • How to get tables used by a Function Module

    Hi,
    How to know the tables used by a function module dynamically.
    Cuurently im using BAPI_MATERIAL_SAVEDATA in my report program.
    I tried FM GET_TABLES to know the tables, but could see only tables used in the report.
    Main issue in my case is when im running this update program, could observe different tables being displayed as updated in SM50(Process Overview).Want to clarify as why these tables which are not being used in my report are being displayed in SM50.
    So was doubtin weather this FM is using these displayed tables.
    Thanks in advance for u r replys.
    Regards,
    Dedeepya

    Hi Dedeepya,
    you could use a SQL Trace (tx. ST05) to list all tables affected and operations that realize. Just active the trace, execute FM, and Deactive trace. Then click in "Display trace" and check it.
    Best regards,
    Pablo

  • How to findout table using structure..

    I like to modify the sap script.I went to change editor on window in coding screen.but they are mentioned only structure name,not a table name.How to findout the table using this structure.

    Hi,
    If u open that structure  u can find the data element for that particular structure. U have to double click that element after that go with where-used-list icon and go with table fields and find out the tables.
    Thanks,
    Shankar

  • How to create table using Procedure

    Hi,
    I want to create table using procedure .
    How to write procedure for the table creation?
    thanks in advance.

    Use dynamic sql or DBMS_UTILITY.EXEC_DDL_STATEMENT:
    SQL> desc tbl1
    ERROR:
    ORA-04043: object tbl1 does not exist
    SQL> begin
      2      execute immediate 'create table tbl1(x number)';
      3  end;
      4  /
    PL/SQL procedure successfully completed.
    SQL> desc tbl1
    Name                                      Null?    Type
    X                                                  NUMBER
    SQL> drop table tbl1
      2  /
    Table dropped.
    SQL> begin
      2      DBMS_UTILITY.EXEC_DDL_STATEMENT('create table tbl1(x number)');
      3  end;
      4  /
    PL/SQL procedure successfully completed.
    SQL> desc tbl1
    Name                                      Null?    Type
    X                                                  NUMBER
    SQL>  SY.

  • How to identify tables use currency as foreign keys?

    Currently we have identified some currencies that needed to updated to ISO values and others as obsolete(eg. some EURO countiries set to EUR) in ECC
    So my question is how to efficiently locate those foreign keys tables in ECC?
    Thx and Best Grds
    David

    I do not think I fully understand your question but I will give it a shot.
    If you are trying to locate a foreign key, then proceed as follows.
    1.  Transaction Code: SE11
    2.  Enter the table in question.  For example BSEG
    3.  Select a table. For example BUKRS or KUNNR
    4.  Click on Foreign Keys.  The symbol or icon is a key with an arrow pointing down. It is before Srch Help.
    5. A screen will pop-up with the foreign key fields and tables where you can you the CHECKTABLE.
    Or enter table using SE11: GLPCT
    2.  Select RTCUR
    3.  Click on Foreign Keys
    3.  In the pop-up screen,  double click on TCURC in the check table field.
    Hopes the above provides you with a clue.
    Elias
    Edited by: Elias Akorli on Dec 7, 2009 2:29 PM

  • How to call webservice for each record in a table using ODI

    Hi
    I am new to ODI and Webservice. I want to invoke a scenario in ODI using web service. I hava a weblogic application server with axis 2 deployed.
    But I want call webservice for each record in a table
    For eg: "EMP" table have 50 records, for each record web service should invoke
    Can any one help me on it.
    Thanks,
    phani
    Edited by: user12774166 on Jun 6, 2010 11:16 PM

    If your goal is "call" a web service, Jason's Straub's [flex-ws-api|https://flex-ws-api.samplecode.oracle.com/] is by far the best I've seen. You might want read more about it on [his blog|http://jastraub.blogspot.com/search?q=+flex_ws_api+].
    Tyler Muth
    http://tylermuth.wordpress.com
    [Applied Oracle Security: Developing Secure Database and Middleware Environments|http://sn.im/aos.book]

  • Transpose Text-to-Column of Oracle table using ODI

    Here is what I am trying to do:
    Source table has the columns:
    Time, Blob, Item-ID
    Expected Target has the columns:
    Time, Data, Item1, Item2,...ItemN
    1. Where Item1, Item2 are as illustrated: Say for example source table has 10 rows of different IDs, there would be 10 columns in Target table starting with Item1 to Item10. (Assuming no. of different IDs is fixed)
    How to do this? I am learning ODI for few weeks now. I understand the basics and terminologies but don't know how to do this.
    2. Data (of Target table) is a return value of a stored procedure that would convert the Blob (of Source table)
    The stored procedure is ready but how to use the procedure to get the target from the source.
    Any help/direction would be greatly helpful.
    - Venkat
    Edited by: user12397263 on Dec 29, 2009 11:53 PM

    1. A question: How would you determine which row goes to which column? You can say that 1st row value becomes item1, but without an ORDER BY row 1 will always be random. If you have a way to ensure the order of the rows (let us say a column that can store the rownum) then all you need is that in the interface you need to specify for n-th item mapping should be MAX(Case when rownum = n then item else ' ' end). That should take care of it.
    2. There is a way to do this in ODI. Because you are a newbie I would recommend that you build a temp table and use a PL/SQL block to generate the data from blob and use the temp table as another source table that can update data column in the target table.

  • Schedule a Package to Update JDE Table using ODI

    Hello,
    I've a requirement were I need to update the jde table based on a condition (update one field in this table based on calculating the date). Can we do this in ODI ? If yes, how can I do this?
    Thanks

    Hi,
    yes, that is no problem... just use a 'case when" like a simple SQL.
    If this doesn't reply the question, just show me an example that I'm pretty sure it's possible.
    Cezar Santos
    http://odiexperts.com

  • How to Populate table using values from a muti-select list

    I have a muti-select list in a page, the user can select some of the values from the muti-select list. How to populate a table in a process using the selected values.
    Thanks.
    XP

    XP,
    you can also have a look at the following thread.
    Re: Shuttle Control In APEX 3
    Patrick
    My APEX Blog: http://inside-apex.blogspot.com
    The ApexLib Framework: http://apexlib.sourceforge.net
    The APEX Builder Plugin: http://sourceforge.net/projects/apexplugin/

Maybe you are looking for

  • Illustrator CS5 Instalation Problem on Mac OSX 10.5.8

    I have tried instaling this software multiple times and am getting errors in the program that reinstalling doesn't seem to fix. Here are the errors I'm getting: When opening a new document, I get the error: "Can't locate the Startup Profiles. Please

  • MRP Run Problem through MDBT

    Hi, We are running the MRP based on MRP controller through Transaction MDBT. As per SAP threads, We insert the User Exit Key as CB1 & User exit parameters as MRP Controller and click on start immediately. After result come, we see the output from SP0

  • Filling in calendar details automatically

    When a user signs up via the 'sign me up' utility, they still have to configure their details for the calendar portlet to work properly. Is there any way that the details of the calendar server, username and password can be automatically filled in?

  • Songs on my iTouch are not playing all the way through

    Hello, I have an iTouch 5th generation. The songs on it are not playing all the way through or simply do not play for the entire duration of song. The songs that do not play all the way through leaves the rest of the song being 'played' with no sound

  • Doubt on arrays

    I create an array "sales[]" of type Object.And the array is used to hold 5 objects of type "Item" class.Item class having a constructor which sets the values for fields of itemname of type String,Itemcost of type double,Itemid of type String aslike..