Rotate several tables of channels 1 d
Hello
I have a vi that eventually writes some data to a log (.txt) file. In the data that are written, there are a few tables. In a particular section, I have three arrays of strings that I try to handle it with no luck. Here is an example of what I have now, and subsequently, where I want to be:
Present:
x 1
x 2
x 3
Y1
Y2
Y3
Z1
Z2
Z3
Desire:
x 1 y1 z1
x 2 y2 z2
x 3 y3 z3
Where x, y and z represent the three tables of sepreate channels. These tables is then concatenated with other data to generate the log file. It seems that no matter what I do (build, transpose, index, etc...) I still end up with the vertical arrangement in my log file - I'm sure I'm overlokking something trivial, but it's deceiving me right now.
I cannot post my code because of security, but will provide any more detais needed. Thanks in advance.
I think you are looking to do a table build followed by a transposition.
Your build array must have 3 entries.
Feed it to X, Y and Z and you should get
x 1, x 2, x 3
Y1, y2, y3
Z1, z2, z3
Hit this result with the conversion and you should get
x 1 y1 z1
x 2 y2 z2
x 3 y3 z3
What do you use to write to the log file?
Tags: NI Software
Similar Questions
-
outer join when there are several tables are involved
Could not put up the question correctly to the last channel, my problem is with the join when there are several tables are involved, this is just one example of the task that I have to carry.
Tab1 aura model id retailer_id information for all the weeks (from the first Monday) of the month of JUNE with cost and Helen
Tab1
model_id
retailer_id
sell_date
cost
Helene
1
12
June 3, 13
100
40
1
12
June 10, 13
200
20
1
12
17 June 13
300
20
1
12
24 June 13
400
20
2
12
June 3, 13
300
10
2
12
June 10, 13
200
20
2
12
17 June 13
300
20
2
12
24 June 13
400
20
Tab2:
each retailer belongs to a dealer, under the table has the same information
retailer_id
Dealer_id
12
100
13
100
14
101
15
101
16
101
Tab 3
There is a third layer where each dealership is having a garage band
Dealer_id
Dealer_group
100
1001
101
1001
102
2001
103
2001
104
3001
105
3001
Tab4:
Of this table for each model and dealer discount information for the month of June (every week)
model_id
Dealer_group
discount_date
discount
1
1001
June 3, 13
10
1
1001
June 10, 13
20
1
1001
17 June 13
10
1
1001
24 June 13
30
2
1001
June 3, 13
10
2
1001
June 10, 13
20
2
1001
17 June 13
10
2
1001
24 June 13
30
3
2001
June 3, 13
10
3
2001
June 10, 13
20
3
2001
17 June 13
10
3
2001
24 June 13
30
Master_info:
It's the main table which is the master table for model /retailer information
Model_id
retailer_id
1
12
2
12
3
12
4
12
1
13
2
13
Output
model_id
retailer_id
sell_date
cost
Helene
Final (cost-helene-discount)
1
12
June 3, 13
100
40
50
1
12
June 10, 13
200
20
160
1
12
17 June 13
300
20
270
1
12
24 June 13
400
20
350
2
12
June 3, 13
300
10
280
2
12
June 10, 13
200
20
160
2
12
17 June 13
300
20
270
2
12
24 June 13
400
20
350
3
12
June 3, 13
0
0
0
3
12
June 10, 13
0
0
0
3
12
17 June 13
0
0
0
3
12
24 June 13
0
0
0
4
12
June 3, 13
0
0
0
4
12
June 10, 13
0
0
0
4
12
17 June 13
0
0
0
4
12
24 June 13
0
0
0
1
13
June 3, 13
0
0
0
1
13
June 10, 13
0
0
0
1
13
17 June 13
0
0
0
1
13
24 June 13
0
0
0
2
13
June 3, 13
0
0
0
2
13
June 10, 13
0
0
0
2
13
17 June 13
0
0
0
1
13
24 June 13
0
0
0
For highted above records (model_id / retailer_id combination) there is no record in tab1 but they have entered in master_info then the recordings should come for all model_id/retailer_id with all the 0 values
Hello
Thanks for posting the sample data.
It is unclear what dates you want to include in the output. The following query shows how you can generate every Monday in a given range. If you only want to include the dates that are actually present in tabl1 and/or tab4, you can simplify this a bit.
WITH date_range AS
(
SELECT TRUNC (TO_DATE (' 3 June 2013', 'DD-Mon-YYYY'))
, 'IW '.
) AS first_monday
, TRUNC (TO_DATE (24 June 2013 ', 'DD-Mon-YYYY') + 6)
, 'IW '.
) AS last_monday
OF the double
)
all_mondays AS
(
First_monday SELECT + (7 * (LEVEL - 1)) AS sell_date
OF date_range
CONNECT BY LEVEL<= 1="" +="" (="" (last_monday="" -="">=>
/ 7
)
)
SELECT mi.model_id
mi.retailer_id
am.sell_date
, Cost of NVL (t1.cost, 0) AS
, NVL (t1.rebat, 0) IN the refund
, NVL (t1.cost, 0)
-(NVL (t1.rebat, 0))
+ NVL (t4.discount, 0)
) AS final
E master_info
CROSS JOIN all_mondays am
LEFT OUTER JOIN tab1 t1 ON t1.model_id = mi.model_id
AND t1.retailer_id = mi.retailer_id
AND t1.sell_date = am.sell_date
LEFT OUTER JOIN tab2 t2 ON t2.retailer_id = mi.retailer_id
LEFT OUTER JOIN tab 3 t3 ON t3.dealer_id = t2.dealer_id
LEFT OUTER JOIN tab4 t4 ON t4.model_id = t1.model_id
AND t4.dealer_group = t3.dealer_group
AND t4.discount_date = t1.sell_date
ORDER BY mi.retailer_id
mi.model_id
am.sell_date
;
The results are not exactly what said you you wanted. I suspect it's because of typos in that you posted.
-
Addition of several global virtual channels
Hello
I had a very simple function written in CVI which adds several global virtual channel
DAQmxErrChk (DAQmxAddGlobalChansToTask(g_TaskHandle, linesName)); //linesName consists 2 global virtual channels seperated by ",". E.g. "Power, Com" where Power = port1/line0 & Com = port1/line2
There is also AddGlobalFunction in MEasurement Studio, but it allows adding of single channel only:
Task localTask = new Task(); localTask.AddGlobalChannel(linesName); //Get Expetion here = -200486, Specified Channel not in the task. When I give a single channel name..it works DigitalSingleChannelWriter doWriter = new DigitalSingleChannelWriter(localTask.Stream); doWriter.WriteSingleSampleMultiLine(true, states); //atates is the array of type bool which consists of value for each channel
It is not possible to add multiple Global channels to a task?
We have recently acquired license Measurement Studio and try to port/compilation/write our old libraries (written in CVI) inside.
Is there a help line that compares the CVI C functions with the respective functions of DAQmx .NET?
Thanks in advance!
Ciao
Ricky
Hello
It seems you are right. The method definition specifies that it only adds a channel:
public NationalInstruments.DAQmx.Channel AddGlobalChannel(string channelName) Member of NationalInstruments.DAQmx.Task Summary: Adds a preconfigured, global channel to the task. Parameters: channelName: The name of the global channel to add to the task. Returns: The global Channel. Exceptions: NationalInstruments.DAQmx.DaqException: The NI-DAQmx driver returned an error.
This could be explained by the fact that the function returnes the proper object of channel associated with the global virtual channel you created.
I tried to check the reading code 2 Global virtual channel using the DAQ Assistant in Measurment Studio but I wasn't able to get a large part of it (the generated code creates two consecutive calls to the method "CreateVoltageChannel".
What happens if you call AddGlobalChannel twice?
Task localTask = new Task(); localTask.AddGlobalChannel("Power"); localTask.AddGlobalChannel("Com");
I don't have the time to try this so far, but my understanding of the help file, I guess it could work.
Best regards
-
Removal of several tables with only loop FORALL
I need to remove the data from several tables with unique FORALL. It seems that FORALL does not support. Please let me know the alternatives to achieve this goal.
DB version: 11 GR 2
Write switchis for all instructions, one for each deletion. There is no reason why it should not work.
Compare:
Here are some things to know about FORALL:
Each FORALL statement can contain only a single DML statement. If your loop contains two updates and a deletion, then you will need to write three statements FORALL
-
Hello
We are working on a data warehousing project and wonder how do to join several tables that each are versioned separately (type SCD 2 with a valid and valid to date).
Because for example, we get our client from a single source of information (id customer, name, etc.) and the information on the rate of customer from another source. The sources are different, we have the separate tables for them and each of them gets versioned independently.
Here's my customer table (with its own valid and valuable to the columns).
ID Name of the customer Valid from Valid until the 1 CitiBank 1 JANUARY 14 JANUARY 1, 15 1 New CitiBank 2 JANUARY 15 FEBRUARY 1, 15 1 Latest CitiBank 2 FEBRUARY 15 APRIL 1, 15 And similarly the Client side ID and rating information.
ID Note Valid from Valid until the 1 Platinum 1 JANUARY 14 FEBRUARY 1, 14 1 Premium FEBRUARY 1, 14 1ST MARCH 15 I want to merge the two tables above and present information at a glance. I have some difficulty to determine validates the valid columns.
ID Name of the customer Note Valid from (Calculated) Valid until the (calculated) 1 CitiBank Platinum 1 JANUARY 14 FEBRUARY 1, 14 1 CitiBank Premium FEBRUARY 1, 14 JANUARY 1, 15 1 New CitiBank Premium 2 JANUARY 15 FEBRUARY 1, 15 1 Latest CitiBank Premium 2 FEBRUARY 15 1ST MARCH 15 And it's the query I used to get the above result:
SELECT client. id ,
customer . name ,
CRM . level ,
Greatest (client. vld_fm , crm. vld_fm ),
Least (client. vld_to , crm. vld_to )
DE client client,
client_rating crm
OÙ client. id = crm. id
AND ( client. vld_fm <= crm. vld_fm
AND client. vld_fm <= crm. vld_to
AND client. vld_fm >= crm. vld_fm
AND client. vld_fm >= crm. vld_to )
OR ( client. vld_fm BETWEEN crm. vld_fm AND crm. vld_to )
OR ( client. vld_to BETWEEN crm. vld_fm AND crm. vld_to );
The problem is we have several data sources (and each with its own versions) and joins become so very very complex. Is there a better way to write the query?Or maybe a better way to design our tables?
Thanks for your help.
Anand
Hello
you only need ranges that overlap to join.
Re: How do to sql query in a loop
Is a simpler way to test if the x_start to x_stop range comes into conflict with the range of y_start to y_stop
WHERE x_start <= y_stop AND y_start <= x_stop
In other words, two overlapping if and only if everyone will start before the other ends one. If this is not obvious (and it was certainly not clear to me when I heard it), then look at it this way: two ranges are not overlapping if and only if one of them starts after the end of the other.
Concerning
Marcus
-
IHAVE a requirement like this.but explained in the form of two table emp and Dept.
I have a table emp table(empno,ename,deptno) and dept (deptno, dname)
I have a third emp_details (empno, ename, deptno, dname) of table
I have a procedure that returns the empdetails
I have a query in th eabove procedure, select * from emp_details; that returns all the details.
I want to write a trigger of such that,.
If I insert or update a row in the emp and dept table and then he should get inserted/updated in the table of emp_details also.
I am able to write triggers ona single table. I can't get the rows inserted or updated when it comes to multiple tables.
Data:
create table emp
(key primary empno number,)
Ename varchar2 (20).
DEPTNO number
)
create table dept
(key primary number depno,)
DNAME varchar2 (20)
)
Insert into dept values(10,'hyderabad');
Insert into dept values(20,'bangalore');
Insert into emp values(1,'A',10);
Insert into emp values(2,'B',20);
CREATE TABLE EMP_DETAILS
AS
SELECT E.ENAME, E.EMPNO, E.DEPTNO, D.DNAME
Of
EMP E, DEPT. D
WHERE E.DEPTNO = D.DEPTNO;
CREATE OR REPLACE PROCEDURE PROC_EMP_DETAILS (P_EMPNO EMP. EMPNO % TYPE OUT, P_ENAME EMP. ENAME OUT TYPE, P_DEPTNO EMP %. DEPTNO % TYPE OUT, P_DNAME MIN. DNAME % OUT TYPE)
AS
/ * EXAMPLE OF CODE * /.
BEGIN
SELECT * FROM EMP_DETAILS;
END;
/
I tried like this
CREATE OR REPLACE TRIGGER TRIG_EMP_DETAILS
AFTER INSERT OR UPDATE ON EMP
FOR EACH LINE
REFERENCING OLD AS OLD AGAIN AS NEW
BEGIN
INSERT INTO EMP_DETAILS VALUES(:NEW.) EMPNO,: NEW. ENAME,: NEW. DEPTNO,?)
???? -As a column, we get dept table how to represent that?
Could you please guide me in this regard?
Thanks in advance
KVBTrigger on a several tables
I think that you don't need triggers on several tables: one is enough:
CREATE OR REPLACE TRIGGER trig_emp_details AFTER INSERT OR UPDATE ON emp FOR EACH ROW BEGIN INSERT INTO emp_details SELECT :new.empno, :new.ename, :new.deptno, dname FROM dept WHERE deptno = :new.deptno; END;
-
A block of data, several tables
In the manual of Concepts 10.2 is the following definition:
Table directory
This part of the data block contains information about the table with lines in this block.
11.2 Concepts manual, the definition has been changed:
Table directory
+ For a table in a heap, this directory contains metadata about the tables whose lines are stored in this block. Several tables can store lines in the same block. +
How many tables can store lines within a single block? A block belongs to a point belongs to a segment belongs to an object.The only case I could think of where it is true is in a cluster in the table.
Of http://docs.oracle.com/cd/E14072_01/server.112/e10713/tablecls.htm#i25478
A cluster of the table is a group of tables that share common columns and store related data in the same blocks. When the tables are grouped, a single data block can contain several tables lines
-
Several Tables of contents, ePub TOC navigation
Re: http://forums.Adobe.com/message/5608816#5608816
If create two mor several tables of contents of a book, one that becomes the navigation exported ePub toc?
The EPUB uses the single name in the Options of the EPUB Export:
-
Hello! Is it possible to MERGE INTO several tables under certain conditions? It's that if the condition is satisfied the data is intended to a single table, if not the other.
You can not. Only inserts can be multi-table.
-
Performance in the treatment of the based on a game, several tables from target
Welcome.
I have question about a treatment based on a game, when mapping have several tables in the target. I noticed that OWB generate SQL code that usually build a query for each table in the target insertion. Suggest that each table has results from different stages of the treatment, so multi table insert cannot be used. Looking for generated code PL/SQL, I feel that each insert query managed independently and so each make analyses of source table and joins on its own.
To make my question more concrete, I will introduce two simple examples of stream ETL:
1) start-> (table scan)--> (joins)--> (inserting into the table t1)
2) start-> (table scan)--> (joins)-> two targets: (insert into table t1)
-> two targets: (deduplicator)--> (insertion in table t2)
Admit, that scans and joins are very expensive comparing to insert rows. Thus, it is usually, if oracle performs scans of tables 2 and joined in example 2) and example 2) take twice longer than example 1)?
Or fact Oracle is so smart that it can cache the result of entering the first query and use it again in the second query?
Best regards
PawelHi Pawel,
Thus, it is usually, if oracle performs scans of tables 2 and joined in example 2) and example 2) take twice longer than example 1)?
Yes, you are right
Or fact Oracle is so smart that it can cache the result of entering the first query and use it again in the second query?
Nor the database Oracle or OWB don't is not to intermediate capabilities query result caching.
While the Oracle database feature "result cache queries", but it must match exactly to SQL source and it store only the final query result...Kind regards
Oleg -
Hello
I am building an application that handles (APEX 4.0) material inventory. I have an entry page that adds data to two or more tables at once. The page has two forms on it pointing to two separate tables. However when I try to run the page, it fails and returns an error:
ORA-06550: line 1, column 437: PL/SQL: ORA-00904: "ORH_LAST_UPDATE_DATE": invalid identifier ORA-06550: line 1, column 7: PL/SQL: statement ignored
Error failed to process row in the IDD_ID_DATA table.
As far as I can see in the application, this column is not in question (I don't even do anything for her and she is nullable). I looked at the application itself as well as some research online but can't find anything useful...
So my question is this: is it possible to add several tables to a page? If yes how?
I'm new to APEX so any help would be greatly appreciated!UPDATE:
I received an email from support of APEX team:
«The answer is simple, it's you will need manually code processes query (and DML) If you want to maintain multiple tables on a page (there is a limit of a table when you use the integrated process).»
For this I suggest that you remove the process generated by the wizards and create processes of PL/SQL with insert, update, delete statements as needed. "This encoding is not difficult but takes much longer when you can use the integrated process.I've been playing with code PL/SQL and the final result is the following:
Start
INSERT INTO table1
VALUES)
: P2_Item_Field1,.
(: P2_Item_Field2);
INSERT INTO table2
VALUES)
: P2_Item_Field1,.
(: P2_Item_Field2);
end;I used this code in a PL/SQL custom in the treatment process > section to the Page processing and it seems to work fine now. The only downside to this method is that if the name of a Page element is changed the code will also have to be changed. Except that I had no problem.
-
Creating a combined chronology based on several chronologies in several tables
Hello
I need to extract a timeline for a customer based on valid_from and valid_to dates in several tables.
For example: I have a table named customers with an id, a valid_from a valid_to date and a table named contracts with contrat_name and customer_id and valid_from valid_to:
CUSTOMERS:
ID | VALID_FROM | VALID_TO
1. 01.03.2010 | 01.01.4000
CONTRACTS:
CONTRACT_NAME | CUSTOMER_ID | VALID_FROM | VALID_TO
Contracted | 1. 01.03.2010 | 01.10.2010
ContractB | 1. 01.10.2010 | 01.01.4000
The following statement would now give me the correct chronology:
Select customer cus.id, con.contract_name, greatest(cus.valid_from,con.valid_from) least(cus.valid_to,con.valid_to) valid_to valid_from
customers cus
stupid contracts on cus.id = con.customer_id inner join;
CUSTOMER | CONTRACT | VALID_FROM | VALID_TO
1. Contracted | 01.03.2010 | 01.10.2010
1. ContractB | 01.10.2010 | 01.01.4000
It works, but I get a problem whenever I have a point from the time there is no contract for a client, but I would always like to have these periods in my calendar:
Suppose the following data and the same select statement:
CUSTOMERS:
ID | VALID_FROM | VALID_TO
1. 01.03.2010 | 01.01.4000
CONTRACTS:
CONTRACT_NAME | CUSTOMER_ID | VALID_FROM | VALID_TO
Contracted | 1. 01.05.2010 | 01.10.2010
ContractB | 1. 01.12.2010 | 01.03.2011
What I would now get would be:
CUSTOMER | CONTRACT | VALID_FROM | VALID_TO
1. Contracted | 01.05.2010 | 01.10.2010
1. ContractB | 01.12.2010 | 01.03.2011
But what I get is the following:
CUSTOMER | CONTRACT | VALID_FROM | VALID_TO
1. null | 01.03.2010 | 01.05.2010
1. Contracted | 01.05.2010 | 01.10.2010
1. null | 01.10.2010 | 01.12.2010
1. ContractB | 01.12.2010 | 01.03.2011
1. null | 01.03.2011 | 01.01.4000
What I won't is generate a result with contract = null any time, there is no contract because I actually want to join the chronology of several different tables into one and it would be very complicated to assume things based on what data can or can not be found in a specific table.
Thanks for any help or ideas,
Kind regards
ThomasHi, Thomas,.
Whenever you have a problem, after the sample data in a form that people can use to recreate the problem and test their ideas. CREATE TABLE and INSERT statements are great.
For example:CREATE TABLE customers ( customer_id NUMBER (6) PRIMARY KEY , valid_from DATE NOT NULL , valid_to DATE NOT NULL ); INSERT INTO customers (customer_id, valid_from, valid_to) VALUES (1, DATE '2010-03-01', DATE '4000-01-01'); INSERT INTO customers (customer_id, valid_from, valid_to) VALUES (2, DATE '2010-03-01', DATE '4000-01-01'); CREATE TABLE contracts ( contract_name VARCHAR2 (15) NOT NULL , customer_id NUMBER (6) , valid_from DATE NOT NULL , valid_to DATE NOT NULL ); INSERT INTO contracts (contract_name, customer_id, valid_from, valid_to) VALUES ('Contract 1a', 1, DATE '2010-03-01', DATE '2010-10-01'); INSERT INTO contracts (contract_name, customer_id, valid_from, valid_to) VALUES ('Contract 1b', 1, DATE '2010-10-01', DATE '4000-01-01'); INSERT INTO contracts (contract_name, customer_id, valid_from, valid_to) VALUES ('Contract 2a', 2, DATE '2010-05-01', DATE '2010-10-01'); INSERT INTO contracts (contract_name, customer_id, valid_from, valid_to) VALUES ('Contract 2b', 2, DATE '2010-12-01', DATE '2011-03-01');
If a customer contracts of n, then you might need as much as 2n + lines 1 output for this client:
(a) 1 row showing the period, not from the date of customers both valid_from 1st contract begins
(b) n lines indicating the periods under contracts
(c) n lines indicating the period right after each contract, until the following starts (or valid_to of the client, if there is no next contract)
However, you will have lines for periods not contacted ((a) or (c)) if their mandate is 0 days.This sounds like a job for the UNION. Make a UNION 3 lanes in a subquery to generate (a), (b), and (c), and then put a WHERE clause on the combined, results to filter the lines not length 0.
In the query subsidiary UNION, (a) can be done with a query GROUP BY, and (c) can be done using the analytical function of LEAD.WITH union_data AS ( SELECT ua.customer_id , NULL AS contract_name , MIN (ua.valid_from) AS valid_from , MIN (oa.valid_from) AS valid_to FROM customers ua JOIN contracts oa ON ua.customer_id = oa.customer_id GROUP BY ua.customer_id -- UNION ALL -- SELECT customer_id , contract_name , valid_from , valid_to FROM contracts -- UNION ALL -- SELECT uc.customer_id , NULL AS contract_name , oc.valid_to AS valid_from , LEAD ( oc.valid_from , 1 , uc.valid_to ) OVER ( PARTITION BY uc.customer_id ORDER BY oc.valid_from ) AS valid_to FROM customers uc JOIN contracts oc ON uc.customer_id = oc.customer_id ) SELECT * FROM union_data WHERE contract_name IS NOT NULL OR valid_from < valid_to ORDER BY customer_id , valid_from ;
Output:
CUSTOMER_ID CONTRACT_NAME VALID_FROM VALID_TO ----------- --------------- ---------- ---------- 1 Contract 1a 01.03.2010 01.10.2010 1 Contract 1b 01.10.2010 01.01.4000 2 01.03.2010 01.05.2010 2 Contract 2a 01.05.2010 01.10.2010 2 01.10.2010 01.12.2010 2 Contract 2b 01.12.2010 01.03.2011 2 01.03.2011 01.01.4000
Published by: Frank Kulash, April 20, 2011 06:51
Examples added -
Rules of naming on several tables
Is there a quick way to the application of several tables-naming rules both in a relational model? The only way to do it, I found is to click with the right button on a table on the diagram canvas, choose Properties and click on the button 'Naming Rules. It is fine for a single table, but it's a bit tedious if there are many. If I select more than one table and apply the rules naming this method that the rules only get applied to the last table selected, not all the tables. While I can choose several tables in the browser tree there is no context menu right-click Allow me to do anything.
I looked in the help of the naming rules and get 9 hits, none help. Nothing at Universal help either (aka Google).
Probably I'm missing something really obvious...You can apply naming rules in the relational model all - it is in the context menu for the node of relational model in the browser - "apply naming key standards and constraints."
Philippe
-
Oracle 11.1.0.6 database
RHEL 5.3
Hi all
1.)
I want reorg several tables with the ETG. But because there are several tables with different indexes and column names I can not use the order by clause.
create the table reorg_HR_STAGE_EDW. SFHR_ORG_MAPPING_FILE
tablespace REORG
PCTFREE 10 pctused, initrans, maxtrans 1 255
storage)
initials pctincrease of 1 M following 0M 0
MINEXTENTS 1 maxextents unlimited
in select * from HR_STAGE_EDW. SFHR_ORG_MAPPING_FILE;
The table is going to get reorganized even without the orderby clause?
2.)
The steps I should follow are (please, correct me if I'm wrong):
-Create table with the new name in the new tablespace
-Remove the old tables
-Move converted tables to the original tablespace
Is it OK, what happens to the index?
Help, pleaseYou can also copy dependent table with dbms_redfinition. The procedure is called COPY_TABLE_DEPENDENTS. See http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_redefi.htm
ALTER table move would also be possible, but doen't it locks the table all the time?
Kind regards
-wiZ
-
Insert APPEND Hint in several tables
Hi all:
Let me say at the outset that I have no dataset example of post, it is just an issue where I'm hoping to get some directions to help out my own query.
I have an insert multi-table into two tables. When I use the indicator append, the plan of the explain command is no indication that the indicator is respected. But if I change the statement and perform an insert in a single table, then I see "LIVE LOAD INTO" in the plan.
I'm stumped as to how to begin troubleshooting. Does anyone have ideas on how you might tackle a problem like this?
Thanks in advance!Looks like it works right out of the box. Here is an example of using 11.2.0.2:
create table t1 (c1 number) parallel 2; create table t2 (c1 number) parallel 2; alter session enable parallel dml; explain plan for insert all into t1 (c1) values (rnd) into t2 (c1) values (rnd) ( select 1 as rnd from dual connect by level < 10000 ); SELECT * FROM TABLE(dbms_xplan.display); rollback; alter session disable parallel dml;
Here is the output of DBMS_XPLAN showing the LIVE MODE on several tables:
Plan hash value: 2997348579 ---------------------------------------------------------------------------------------------------------------------------- | Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | TQ |IN-OUT| PQ Distrib | ---------------------------------------------------------------------------------------------------------------------------- | 0 | INSERT STATEMENT | | 1 | 3 | 2 (0)| 00:00:01 | | | | | 1 | PX COORDINATOR | | | | | | | | | | 2 | PX SEND QC (RANDOM) | :TQ10001 | | | | | Q1,01 | P->S | QC (RAND) | | 3 | MULTI-TABLE INSERT | | | | | | Q1,01 | PCWP | | | 4 | PX RECEIVE | | | | | | Q1,01 | PCWP | | | 5 | PX SEND ROUND-ROBIN | :TQ10000 | | | | | | S->P | RND-ROBIN | | 6 | VIEW | | 1 | 3 | 2 (0)| 00:00:01 | | | | |* 7 | CONNECT BY WITHOUT FILTERING| | | | | | | | | | 8 | FAST DUAL | | 1 | | 2 (0)| 00:00:01 | | | | | 9 | DIRECT LOAD INTO | T1 | | | | | Q1,01 | PCWP | | | 10 | DIRECT LOAD INTO | T2 | | | | | Q1,01 | PCWP | | ---------------------------------------------------------------------------------------------------------------------------- Predicate Information (identified by operation id): --------------------------------------------------- 7 - filter(LEVEL<10000)
Now, there are a series of restrictions on the direct expenses as soon as you start the overlay on the constraints and triggers. See the restrictions in this section: [documentation Oracle 11.2 INSERT | http://download.oracle.com/docs/cd/E11882_01/server.112/e17118/statements_9014.htm#SQLRF01604]
NOTE: Edited to remove the sentence that PARALLEL DML has been the key. It's not as demonstrated in successive messages but still it trigger inserts in DIRECT-path on an INSERT ALL.
Published by: scatmull on August 22, 2011 12:55
Published by: scatmull on August 22, 2011 13:56
Maybe you are looking for
-
X 230 mSATA SSD with possible edge to 3 G?
I want to upgrade my x 230 with an SSD. My model is the NZD79MS with integrated 3 G WWAN and a 500 GB HARD drive. I wonder if I can add an mSATA SSD to use as system disk and keep the HARD disk provided as secondary data drive, or if the mSATA space
-
Instability of the system cause ReadyBoost?
I tried readyboost on my vista 64-bit with a 4 GB usb key and it was great to work for a while, but one day, then my computer won't start, he said in my startup folder, files were missing or there was an error when you try to read them. After getting
-
dm3-1105ea WWAN ready or not?
Hi, I have a dm3-1105ea with SIM card (on drums). I know this model not including wwan card, this feature is opcional and each DM3 model, including the SIM card. I have now, I want to buy a modul WWAN gobi 2000 (it is good add-on?), but the problem i
-
Original title; GAME Hello. IM USING WINDOWS 7 PROFESSIONAL SOFTWARE. MY COUSIN GAVE ME A FIFA 13 GAME. OPEN ITS NOT GET WHEN I DOUBLE CLICK THE ICON OF THE FIFA. CAN SOMEONE PLEASE HELP ME JUST SHOOT THE PROBLEM?
-
Apply wildacart Anyconnect VPN certificate
Hello I am applying for the first time + CLI wildcard certificate. I have 3 files with the .pem viz root cert, intermediate cert and private key. And the password used for the import. I'm following the URL: http://www.cisco.com/c/en/us/support/docs/i