ODI includes multi-table inserts?

ODI interfaces are going against a single target data source.

However, ODI can take advanced of the insert all, who may indeed have several segments against a single table?



If not, is there a solution in ODI that can take data from a single data source and distribute it to multiple targets in a single pass?

Hello Hans,.

Currently we do not have the option of inserting data in multiple tables from target in a single pass

For a need to move data in multiple tables in target, you can select one of the below method

1. use several interfaces.

2. use procedures ODI
Steps: -.
Write your select query on command on the source
write your Insert query on command on the target

Please let me know if you need more information on this.

Kind regards
Its

Tags: Business Intelligence

Similar Questions

  • IKM Oracle Multi Table Insert obsolete?

    The description for 'IKM Oracle Multi Table Insert' reads:

    -Snip-

    DEPRECATED: KM has been deprecated and may be removed without notice in future versions ODI. Please use the MTI ODI mappings feature.

    -Snip-

    Can someone tell me the right way to do it in 12 c?  Everything I tried publishes two inserts instead of an insert of all.

    Thank you

    Scott

    12 c, there is now a revenge for this called "IKM Oracle down".  He doesn't appear on the physical tab and cannot be imported because it is built in.

  • Possible to insert more than once in the same table using multi table insert?

    I used multi-table insert before insert a source separate from the tables without problem.

    However, when I want to insert into the same table two or more distinct lines, I encountered a problem because when I call nextval on the sequence since this is the same sequence # will try to use the same number for two inserts, which will raise a violation of PK constraint on the 2nd insert.

    A way around this problem?

    Another option is to create the sequence with increases of 2 or however many tables, you are targeting.
    When you then specify the. NEXTVAL, you must subtract the relative number of it, apart from the first table that you insert in to.

    Something like that;

    drop table t1;
    
    create table t1 (a number, b number);
    
    drop table t2;
    
    create table t2 (a number, b number);
    
    drop sequence test_seq
    /
    
    create sequence test_seq increment by 2 minvalue 0
    /
    
    insert all
    when 1 = 1 then
      into t1 (a, b) values (test_seq.nextval, 1)
    when 1 = 1 then
      into t2 (a, b) values (test_seq.nextval  - 1, 1)
    select 1, 1 from dual
    /
    
  • Deliver the trigger, multi-table insert logging of errors

    I find that if I try to perform an insert multi-table with logging of errors on a table that has a trigger, then some violations of constraints result in a raised exception being as connected:
    < pre >
    SQL > select * from v version $;

    BANNER
    --------------------------------------------------------------------------------
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    PL/SQL Release 11.2.0.1.0 - Production
    CORE 11.2.0.1.0 Production
    AMT for 32-bit Windows: Version 11.2.0.1.0 - Production
    NLSRTL Version 11.2.0.1.0 - Production

    SQL > create table t1 (primary key of all id ;)

    Table created.

    SQL > create table t2 (id integer, t1_id integer primary key,
    2 constraint t2_t1_fk foreign key (t1_id) refers to t1);

    Table created.

    SQL > exec dbms_errlog.create_error_log ("T2");

    PL/SQL procedure successfully completed.

    SQL > insert all
    2 in t2 (id, t1_id)
    3 values (x, y)
    4 errors in the journal in err$ _t2 limit unlimited rejection
    5. Select 1 x, 2 double y;

    0 rows created.

    SQL > create or replace trigger t2_trg
    2 before insert or update on t2
    3 for each line
    4 start
    5 zero;
    6 end;
    5 m

    Trigger created.

    SQL > insert all
    2 in t2 (id, t1_id)
    3 values (x, y)
    4 errors in the journal in err$ _t2 limit unlimited rejection
    5. Select 1 x, 2 double y;
    Insert all
    *
    ERROR on line 1:
    ORA-02291: integrity constraint (enhanced oil recovery. T2_T1_FK) violated - key parent not found
    < code >

    This does not seem to be a documented restriction. Anyone know if this is a bug?

    Hi Tony,.

    Looks like you ran into Bug 9539578: INSERT ALL AND TRIGGER CAUSES ERROR LOGGING to FAIL (ROLLBACK)

    Concerning
    Peter

  • Error log can be used with multi table insert?

    I mean I want to insert into multiple tables and errors in the log for each table. Would this be possible?

    I tried something like below:

    in zzz_party)

    name,

    party_type,

    domicile_ctry_id

    ) (the values

    case

    Where rn = null then 14

    other name

    end,

    party_type,

    domicile_ctry_id

    ) Journal of log errors in zzz_err_party ("INS1")

    reject limit unlimited

    in zzz_party2)

    name,

    party_type,

    domicile_ctry_id

    ) (the values

    name,

    case

    Where rn = null then 14

    of other party_type

    end,

    domicile_ctry_id

    )

    Error log of journal zzz_err_party2 ("INS1")

    reject limit unlimited

    Select name, legal_name.

    case

    Where rownum = null then 14

    of other party_type

    end

    -t.domicile_ctry_id, rownum rn

    advantage t

    WHERE name like 'A %' and rownum < = 100

    ;

    And it does not work.

    Is there a way to do what I thought without having a separate select insert for each table with its own errors in the log?

    Whenever you have an error message the complete error message. "It doesn't work" is not an error message that others can understand.

    Looking in your statement, there are some flaws of syntax. I have fixed the. Try this

    insert all
    into zzz_party
    (
      name
    , party_type
    , domicile_ctry_id
    )
    values
    (
      case when rn=14 then  null else  name end
    , party_type
    , domicile_ctry_id
    )
    log errors into zzz_err_party ('ins1') reject limit unlimited
    into zzz_party2
    (
      name
    , party_type
    , domicile_ctry_id
    )
    values
    (
      name
    , case when rn=14 then null else party_type end
    , domicile_ctry_id
    )
    log errors into zzz_err_party2 ('ins1') reject limit unlimited
    select name
         , legal_name
         , case when rownum=14 then null else party_type end party_type
         , t.domicile_ctry_id
         , rownum rn
      from party t
     where name like 'A%'
       and rownum<=100;
    
  • Makes no sense to me-multi-table INSERT alias

    small excerpt of the book, do not think that I needed to add many other things.

    So, what do we do? The solution is to specify an alias for column to all column names

    in subqueries that use a table alias, then reference it the column alias of the

    rest of the INSERT conditional statement, as we do in lines 5 and 6 below (line

    added numbers):

    01 INSERT

    02. WHAT (BOSS_SALARY-EMPLOYEE_SALARY < 10000) THEN

    03. IN SALARY_CHART (EMP_TITLE, SUPERIOR, EMP_INCOME, SUP_INCOME)

    04 VALUES (EMPLOYEE, BOSS, EMPLOYEE_SALARY, BOSS_SALARY)

    05 SELECT A.POSITION EMPLOYEE,

    06 B.POSITION BOSS,

    07 A.MAX_SALARY EMPLOYEE_SALARY,

    08 B.MAX_SALARY BOSS_SALARY

    09 FROM POSITIONS A JOIN POSITIONS B

    10. THE A.REPORTS_TO = B.POSITION_ID

    11. WHERE A.MAX_SALARY > 100000;


    Note that this version has done more than necessary and applied alias columns

    for each column in the subquery, then referenced by these column alias of the

    WHEN and VALUES clauses. We only needed columns on A.POSITION alias

    and B.POSITION in lines 5 and 6, so we can refer to the alias column to line 4.

    Whatever it is, this version of the INSERT conditional is syntactically correct.

    Uh, have we not need to alias column for lines 7 and 8, so... (as he shows)? Otherwise use table alisases for a.max_salary & b.max_salary on line 2. And using aliases table is not in the INTO s/WHEN is multitable inserts.

    Hello

    2776946 wrote:

    small excerpt from the book,

    What book?  View the full title and page number or link

    I didn't know that I had to add much.

    So, what do we do? The solution is to specify an alias for column to all column names

    in subqueries that use a table alias, then reference it the column alias of the

    rest of the INSERT conditional statement, as we do in lines 5 and 6 below (line

    added numbers):

    01 INSERT

    02. WHAT (BOSS_SALARY-EMPLOYEE_SALARY< 10000)="">

    03. IN SALARY_CHART (EMP_TITLE, SUPERIOR, EMP_INCOME, SUP_INCOME)

    04 VALUES (EMPLOYEE, BOSS, EMPLOYEE_SALARY, BOSS_SALARY)

    05 SELECT A.POSITION EMPLOYEE,

    06 B.POSITION BOSS,

    07 A.MAX_SALARY EMPLOYEE_SALARY,

    08 B.MAX_SALARY BOSS_SALARY

    09 FROM POSITIONS A JOIN POSITIONS B

    10. THE A.REPORTS_TO = B.POSITION_ID

    11. WHERE A.MAX_SALARY > 100000;

    Note that this version has done more than necessary and applied alias columns

    for each column in the subquery, then referenced by these column alias of the

    WHEN and VALUES clauses. We only needed columns on A.POSITION alias

    and B.POSITION in lines 5 and 6, so we can refer to the alias column to line 4.

    Whatever it is, this version of the INSERT conditional is syntactically correct.

    Uh, have we not need to alias column for lines 7 and 8, so... (as he shows)? Otherwise use table alisases for a.max_salary & b.max_salary on line 2. And using aliases table is not in the INTO s/WHEN is multitable inserts.

    It is true; you need an alias for at least 1 of these columns.  Each column in the query (lines 5-11), which is used elsewhere in the statement must have a unique name.  The query you posted called the columns in the result set

    employee_salary and boss_salary.   You can also use

    max_salary and patron of salary or

    employee_salary and max_salary, giving an alias to only 1 of the 2 columns, but they must have unique names.

    You're right on the table alias, too.  The scope of alias tables A and B is the query (lines 5-11).  Impossible to refer to A or B in lines 1-4.

  • Multi Oracle Table inserts

    Hi every1,

    Do you know how do Oracle multi-table insert in ODI 11 g.

    Thank you
    Kishore.

    Hello

    Yes, you need to import IKM Oracle Multi table Insert location of reference ODI_HOME\oracledi\xm

    In ODi 11 g, you develop project > extend your knowledge Module > expand integration (IKM) and right click on even (integration (IKM) and choose Import Modules of knowledge... it will open a window KM, you them select above the location to directory import file: (search and select the location above) below text box area, you can see all kms toll-free) , out of them, you will need to select IKM Oracle Multi Table Insert KM and click on the OK button

    Kind regards
    Phanikanth

  • Can I omit THEN in a when then the clause of an insert statement multi-table?

    Example of a test of the demo:

    You have been appointed as the DBA for a National Bank that provides services of credit and debit cards to its customers. The records for these two types of card users are stored and preserved in the card_customers of Bank data table.

    You decide to create separate tables for credit card users and users of debit cards and then use the data in the card_customers table to populate the new tables. Information for clients who hold both types of card must be added to the time of the tables.

    Which of the two following options provide the most effective way of inserting the customer data in the credit_card_holders and debit_card_holders tables? (Choose two.)

    Explanation:

    In this scenario, the following statement provides the most effective way of inserting data in the credit_card_holders and debit_card_holders tables:

    INSERT ALL
    When card_type = 'Crédit' THEN credit_card_holders
    When card_type = 'Throughput' THEN debit_card_holders
    SELECT * FROM card_customers;

    Le INSERT all THE statement verifies the conditions in the two clauses WHEN , regardless whether one of them is true or false. If a condition when is true, then the line corresponding to the INSERT statement is executed is inserted in the card_customers in the credit_card_holders table or the debit_card_holders table. If a customer has a credit card and a debit card, there will be two rows in the table card_customers for the same customer, one with card_type = 'Crédit' and the other with card_type = 'Throughput'. This statement inserts the correct lines in the tables in a single pass.


    The TIME is here (in bold) are not present in answer C.


    basic question: can I omit the keyword THEN in a moment, then clause?

    What happened when you tried the failure THEN?

    Do not be afraid to break the Oracle by actually TRYING things.

    The best and fastest, to learn is to try things yourself.

    Then, see the documentation for the basic issues.

    http://docs.Oracle.com/CD/B28359_01/server.111/b28286/statements_9014.htm

    View the diagram of syntax for the 'conditional_insert_clause' and you will see that the word is necessary.

  • 1 WSDL include multi BPEL processes?

    Hello

    I use Jdev 12.1.3, I create multi BPEL processes and deploy on the server, the problem is that each BPEL process have different WSDL link, it means that if I have 10 BPEL process, then I have 10 different WSDL link, how can I get 1 WSDL include multi method (process BEPL)

    Thank you

    Hi Hani,

    You can create a WSDL with several operations. Then, you can use the pick activity to respond on different operations. Replace the first reception in the with a pickaxe and be sure to check the box 'create a forum '. See http://blog.darwin-it.nl/2009/12/multi-operations-bpel.html. (I think this example is BPEL 1.1, but it works for BPEL 2.0 accordingly).

    For the re-use of wsdl in several SOA Suite components, store an abstract version of the wsdl file in the MDS and reference it by using the "oramds://apps/...". "URL in the Compsite.xml see, for example Oracle SOA / Java blog: SOA Suite PS6 (11.1.1.7); Loose coupling and chips of service.

    Kind regards
    Martian

  • By default the command of a table / inserted record seems to be at the forefront

    I'm ready to be confused with the result of the insert function and order 'default' a table while I practice with the employee, EMP table

    After inserting a new row in the EMP table, I tried to show the result with SELECT * FROM EMP and found that the last record inserted appeared on the first line of the table.

    SQL > INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES ('& EMPNO ',' & ENAME', ' & JOB ");

    Enter the value for empno: 1234

    Enter the value of ename: JIMMY

    Enter the value of job: MANAGER

    old 1: INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES ('& EMPNO ',' & ENAME', ' & JOB ")

    new 1: INSERT INTO EMP (EMPNO, ENAME, JOB) VALUES ("1234", "JIMMY", "MANAGER")

    SQL > SELECT * FROM EMP;

    EMPNO, ENAME, JOB HIREDATE DEPTNO COMM SAL MGR

    ---------- -------------------- ------------------ ---------- ---------- ---------- ---------- ----------

    1234 JIMMY MANAGER

    7369 SMITH CLERK 7902 17/12/1980 800 20

    7499 ALLEN SALESMAN 7698 20/02/1981 1600 300 30

    7521 WARD SALESMAN 7698 22/02/1981 1250 500 30

    7566 JONES MANAGER 02/04/1981 7839, 2975 20

    7654 MARTIN SALESMAN 7698 28/09/1981 1250 1400 30

    7698 BLAKE MANAGER 01/05/1981 7839, 2850 30

    7782 CLARK MANAGER 7839 09/06/1981 2450 10

    7788, SCOTT, ANALYST, 7566 04/19/1987 3000 20

    PRESIDENT OF KING 7839 17/11/1981 5000 10

    7844 TURNER SALESMAN 7698 08/09/1981 1500 0 30

    7876 ADAMS CLERK 7788 OF 23/05/1987, 1100 20

    7900 JAMES CLERK 7698 03/12/1981 950 30

    7902 FORD ANALYST 7566 03/12/1981 3000 20

    7934 MILLER CLERK 1300 7782 10 23/01/1982

    15 selected lines.

    Should not go to the bottom of the table since it was introduced last?

    I noticed that it was posted in the first place, because I gave the employee number is the smallest; also the empno. is the first column of the table, that it has something to do with the order?

    I does not have an ORDER BY clause when I typed in the statements.

    Is the table always controlled by the first column, by "default"?

    Also: command - line by default, you place your order for a query select in oracle - Stack Overflow

    What I found from this link: «...» "For obvious reasons, if you create a new table, inserting some rows and do a" select * "without the"where"clause, it returns the rows in the order they have been inserted." "

    This is my first post here, the result is displayed in the console can be a bit messy... as if the question is too easy or something, my apologies, I started to learn.

    Thank you!

    Hello

    As Solomon said, there is no default order for the rows of a table.

    If

    -the lines have been inserted in order by empno, and

    -the table is very small, and

    -lines don't have never updated or deleted, and

    -you select all rows in the table, and

    -you do not use the analytical functions, and

    -you do not use CONNECT BY, GROUP BY, or certain other clauses

    then exit may still be in order by empno, depending on your version and platform, but you can't count on it.  Oracle emphatically does not order for the lines as they are stored in a table, or the way in which they appear in the output when you do not use an ORDER BY clause.

  • Is it Possible to have 2 multi table for a descriptor point

    Hello

    Is it Possible to have 2 multi table for a descriptor to point... If so, can u explain how to implement it


    If not, what is the other way to do it.

    Thanks in advance.

    Kind regards
    Mark

    For example, student point-descriptor can have so many tables as SenVideo, topics, address etc...
    -RMishra

  • Table insertion behavior

    Quick question: the table Insert method sends the SQL string once or once for each link? That is, could the wire size of text sql to network problems?

    You referring to the links table, or passing an associative array? In fact, it does not matter, the sql statement is sent once in both cases. If you have messed around with SQLNet trace, you can use it to see the actuall with db communication to confirm that.

    I'm not sure what you mean by "the size of the sql text could lead to network problems.

    It will be useful,
    Greg

  • SQL +-PROBLEM OF QUERY IN MULTI TABLE

    HAI ALL,

    ANY SUGGESTION PLEASE?

    SUP: SQL +-PROBLEM OF QUERY IN MULTI TABLE


    SQL + QUERY DATA:
    -----------
    SELECT PATIENT_NUM, PATIENT_NAME, HMTLY_TEST_NAME, HMTLY_RBC_VALUE,

    HMTLY_RBC_NORMAL_VALUE, DLC_TEST_NAME, DLC_POLYMORPHS_VALUE,

    PATIENTS_MASTER1 DLC_POLYMORPHS_NORMAL_VALUE, HAEMATOLOGY1,

    DIFFERENTIAL_LEUCOCYTE_COUNT1
    WHERE PATIENT_NUM = HMTLY_PATIENT_NUM AND PATIENT_NUM = DLC_PATIENT_NUM AND PATIENT_NUM

    = & PATIENT_NUM;
    -----------
    RESULT:

    & PATIENT_NUM = 1
    no selected line
    ---------
    & PATIENT_NUM = 2
    no selected line
    ------------
    & PATIENT_NUM = 3
    PATIENT_NUM 3

    PATIENT_NAME KKKK

    HMTLY_TEST_NAME HEMATOLOGY

    HMTLY_RBC_VALUE 4
    4.6 - 6.0 HMTLY_RBC_NORMAL

    DLC_TEST_NAME LEUKOCYTE COUNT PREMIUM

    DLC_POLYMORPHS_VALUE 60

    DLC_POLYMORPHS_NORMAL_VALUE 40-65

    -------------
    -------------

    REAL WILL BE:

    & PATIENT_NUM = 1

    PATIENT_NUM 1

    PATIENT_NAME BBBB

    HMTLY_TEST_NAME HEMATOLOGY

    HMTLY_RBC_VALUE 5
    4.6 - 6.0 HMTLY_RBC_NORMAL

    -----------

    & PATIENT_NUM = 2

    PATIENT_NUM 2

    PATIENT_NAME GEORGE

    DLC_TEST_NAME LEUKOCYTE COUNT PREMIUM

    DLC_POLYMORPHS_VALUE 42

    DLC_POLYMORPHS_NORMAL_VALUE 40-65
    ---------------
    & PATIENT_NUM = 3
    PATIENT_NUM 3

    PATIENT_NAME KKKK

    HMTLY_TEST_NAME HEMATOLOGY

    HMTLY_RBC_VALUE 4
    4.6 - 6.0 HMTLY_RBC_NORMAL

    DLC_TEST_NAME LEUKOCYTE COUNT PREMIUM

    DLC_POLYMORPHS_VALUE 60

    DLC_POLYMORPHS_NORMAL_VALUE 40-65
    ----------------------------

    4 TABLES OF LABORATORY CLINIC FOR DATA ENTRY AND GET REPORT ONLY FOR THE TESTS CARRIED OUT FOR PARTICULAR

    PATIENT.

    TABLE1:PATIENTS_MASTER1
    COLUMNS: PATIENT_NUM, PATIENT_NAME,

    VALUES:
    PATIENT_NUM
    1
    2
    3
    4
    PATIENT_NAME
    BENAMER
    GIROT
    KKKK
    PPPP
    ---------------
    TABLE2:TESTS_MASTER1
    COLUMNS: TEST_NUM, TEST_NAME

    VALUES:
    TEST_NUM
    1
    2
    TEST_NAME
    HEMATOLOGY
    DIFFERENTIAL LEUKOCYTE COUNT
    -------------

    TABLE3:HAEMATOLOGY1
    COLUMNS:
    HMTLY_NUM, HMTLY_PATIENT_NUM, HMTLY_TEST_NAME, HMTLY_RBC_VALUE, HMTLY_RBC_NORMAL_VALUE

    VALUES:
    HMTLY_NUM
    1
    2
    HMTLY_PATIENT_NUM
    1
    3
    MTLY_TEST_NAME
    HEMATOLOGY
    HEMATOLOGY
    HMTLY_RBC_VALUE
    5
    4
    HMTLY_RBC_NORMAL_VALUE
    4.6 - 6.0
    4.6 - 6.0
    ------------

    TABLE4:DIFFERENTIAL_LEUCOCYTE_COUNT1
    COLUMNS: DLC_NUM, DLC_PATIENT_NUM, DLC_TEST_NAME, DLC_POLYMORPHS_VALUE, DLC_POLYMORPHS_

    NORMAL_VALUE,

    VALUES:
    DLC_NUM
    1
    2
    DLC_PATIENT_NUM
    2
    3
    DLC_TEST_NAME
    DIFFERENTIAL LEUKOCYTE COUNT
    DIFFERENTIAL LEUKOCYTE COUNT
    DLC_POLYMORPHS_VALUE
    42
    60
    DLC_POLYMORPHS_NORMAL_VALUE
    40-65
    40-65
    -----------------


    Thank you
    RCS
    E-mail:[email protected]
    --------

    I think you want an OUTER JOIN

    SELECT PATIENT_NUM, PATIENT_NAME, HMTLY_TEST_NAME, HMTLY_RBC_VALUE,
     HMTLY_RBC_NORMAL_VALUE, DLC_TEST_NAME, DLC_POLYMORPHS_VALUE,
     DLC_POLYMORPHS_NORMAL_VALUE
    FROM PATIENTS_MASTER1, HAEMATOLOGY1,  DIFFERENTIAL_LEUCOCYTE_COUNT1
    WHERE PATIENT_NUM = HMTLY_PATIENT_NUM (+)
    AND PATIENT_NUM = DLC_PATIENT_NUM (+)
    AND PATIENT_NUM = &PATIENT_NUM;
    

    Published by: shoblock on November 5, 2008 12:17
    the outer join brands became stupid emoticons or something. try hard

  • multi line based on LOV table insert

    SEQ / / desc Ref number value of the option of lov to insert
    15DESC 1011
    16DESC 2022
    17033
    18044
    19055
    20.... 6067

    I have table, need multi line unique insert in process.there is a lov as values from 1 to 10 as number.when return value I select LOV (for example selected value 7) then the rows inserted in table 1 to 7 lines only.the table sequence number must increment as well use.

    Well, if your "seq by trigger" is a sequence number created via a trigger, then you don't need to add yourself as the trigger must do.

    You can then insert the number of rows you want, based on the input parameters...

    Suppose that your values in the apex are: OPT_NUMBER and: SL_NUMBER

    Insert into tablename (option_seq_num, sl_number)
    Select to_char(level,'fm09')
    ,: sl_number + (level-1)
    of the double
    connect by level<=>

    Example of the data...

    SQL > ed
    A written file afiedt.buf

    1 Select to_char(level,'fm09')
    2, & sl_number + (level-1)
    3 double
    4 * connect by level<=>
    SQL > /.
    Enter the value for sl_number: 0
    2 old:, & + sl_number (level-1)
    2 new:, 0 + (level-1)
    Enter the value of opt_number: 10
    4 old: connect by level<=>
    new 4: connect by level<=>

    TO_ 0 + (LEVEL-1)
    --- -----------
    01            0
    02            1
    03            2
    04            3
    05            4
    06            5
    07            6
    08            7
    09            8
    10            9

    10 selected lines.

  • How to find - including the table - the data insertion

    Hi all

    We have oracle 10g need to table name which records the last "data inserted the name of the table.

    Any help on this query,

    Thank you

    My understanding is correct

    1 sales man Insert customer details

    2. this information is stored in a DB with 200 + tables

    3. sales manager need a report for review and approve the details of the customer entered by sales man.

    4. you are asked to prepare this report

    5. you have no idea of what are the paintings to study to get information

    If this is true the correct way is the look in the design of your application document.

Maybe you are looking for