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.
-
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
MarkFor example, student point-descriptor can have so many tables as SenVideo, topics, address etc...
-RMishra -
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 15 DESC 1 01 1 16 DESC 2 02 2 17 03 3 18 04 4 19 05 5 20 .... 6 06 7 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.buf1 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 910 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
-
Why my iPhone isn't Apple pay?
Hey, I got an iPhone 6s I want to add ApplePay and sace my cards but I'm not able to find an option. cchecked youtube, but that does not help.
-
reset the settings to the printer... still no print... more haven't added any items to the menu bar... they went bar & customize window title bar changed...
-
computer Windows 10 does not recognize the iPhone 6
I synchronize once then synchronize simply collapsed. iTunes does not recognize my iPhone. Windows recognizes my iPhone as a storage device.
-
Satellite L300 - how to use the webcam?
This is a stupid situation: -My girlfriend use a Toshiba Satellite L300 laptop.-When Skype-ing with me, she changed out somehow built in camera-J' I try to help him, but I can't find the key combination in the user manual... PLEASE, I BEG YOU! Help!
-
Slow download speed of RVS 4000
I use a Cisco RVS 4000 to test a new internet connection of 10 M / 10 M. I'm having a little problem, the test of speed of PSI (speedtest.cavtel.net). Download test always gives me 10Mbit/s, maximum for the connection speed, but the download speed