Dear need to query result
Hi allI need a a query that will return the results of a more expensive query that is taking most of the I/O /memory.
Thank you
In addition to what sb invited:
Why not the most used network?
But yes, if you want to see Top SQL statements that use the most resources then:
long value 9999999
set line 200;
for a50 sql_text column
SELECT *.
(Substr(a.sql_text,1,50) SELECT sql_text,
Trunc(a.disk_reads/decode(a.executions,0,1,a.executions)) reads_per_execution;
a.buffer_gets,
a.disk_reads,
a.executions,
a.sorts,
a.Address
V $ sqlarea one
ORDER BY 2 DESC) WHERE rownum<=>=>
/
And I think that the question was already answered to your phone too:
How to find the most executable query in the database
Concerning
Girish Sharma
Tags: Database
Similar Questions
-
Need to query the result with two different of a same attribute values
Hi all
I have a search query where I need the query result when an attribute have two different values (e.g.: want the query result when the attribute 'status' is equal to 1 and 2)
And also, the user will be able to search by any State result.
What is the best way to implement this.
Thank you
DKThe solution to this use case is to put the part by default ((statut == 1 ou statut == 2) and: bindUserInput is null) as part of the query and the Pratt of the query to run when a value is entered by the user in a view criteria. East view criteria (Status ==: bindUserInput) and the value of the checkbox to ignore the values null. If the binding variable: bindUserInput is null, only the portion of the query is running, if the binding variable is not null, the display criteria is added at the request of three and three default components will not return any line.
Timo
-
Hi Experts,
I have a DB table has columns of more than 50.
I question this table, it should only return one line at any time. as sqldeveloper below image.
here, I need to build block pl/sql-query, Discover the column in the table as a key and query result as values.
Eg: Key - Value
TASK_EVENT_ID - 1765
EVENT_TYPE - ASR_UPDATE
... etc until all of the columns in my table.
Experts please comment on that point, appreciate your help on this.
Thank you
-Vincent.
Here is an approach using DBMS_SQL to iterate over the columns of key / value to assign... (Little code snipped for brevity)
create or replace procedure (task_expired)
v_store_id in full,
v_task_action_id in full,
v_job_id in full
)
as
-[SNIP code...]
v_sql VARCHAR2 (4000): = ' select * from my_table where PK = 123'; -Your SQL here!
v_v_val VARCHAR2 (4000);
v_n_val NUMBER;
v_d_val DATE;
v_ret NUMBER;
c NUMBER;
d NUMBER;
col_cnt INTEGER.
f BOOLEAN;
rec_tab DBMS_SQL. DESC_TAB;
col_num NUMBER;
vAsString VARCHAR2 (4000);
BEGIN
-[SNIP code...]
Message_properties. CORRELATION: = "EDF_EVENT";
MSG: = SYS. AQ$ _JMS_BYTES_MESSAGE. Construct();
Msg.set_string_property ('queueName', ' shipping/csi_cth');
Msg.set_string_property ('MODE', 'CR8');
c: = DBMS_SQL. OPEN_CURSOR;
DBMS_SQL. PARSE (c, v_sql, DBMS_SQL. NATIVE);
d: = DBMS_SQL. Execute (c);
DBMS_SQL. DESCRIBE_COLUMNS (c, col_cnt, rec_tab);
1.col_cnt J
LOOP
CASE rec_tab (j) .col_type
WHEN 2 THEN
DBMS_SQL. DEFINE_COLUMN (c, j, v_n_val); -Number
WHEN 12 CAN
DBMS_SQL. DEFINE_COLUMN (c, j, v_d_val); -Date
ON THE OTHER
DBMS_SQL. DEFINE_COLUMN (c, j, v_v_val, 2000); -Else treat as varchar2
END CASE;
END LOOP;
LOOP
v_ret: = DBMS_SQL. FETCH_ROWS (c);
WHEN OUTPUT v_ret = 0;
1.col_cnt J
LOOP
-Fetch each column to the correct data type based on coltype
CASE rec_tab (j) .col_type
WHEN 2 THEN
DBMS_SQL. COLUMN_VALUE (c, j, v_n_val);
vAsString: = to_char (v_n_val);
WHEN 12 CAN
DBMS_SQL. COLUMN_VALUE (c, j, v_d_val);
vAsString: = to_char (v_d_val, ' DD/MM/YYYY HH24:MI:SS');
ON THE OTHER
DBMS_SQL. COLUMN_VALUE (c, j, v_v_val);
vAsString: = v_v_val;
END CASE;
Msg.set_string_property (rec_tab (j) .col_name, vAsString);
END LOOP;
END LOOP;
DBMS_SQL. CLOSE_CURSOR (c);
DBMS_AQ. ENQUEUE (queue_name-online 'cbus.aqjms_common',
Enqueue_options => Enqueue_options,
Message_properties => Message_properties,
Payload-online msg,
Msgid => Message_handle);
dbms_output.put_line ('00 Msgid =' |) Message_handle);
dbms_output.put_line('===Done=');
-[SNIP code...]
END;
/
-
Oracle Version: 11.2.0.2.0
I need assistance with the output of the query. Here is the table.
With Tbl_Nm as
(
Select 'ABC1' SYSTEM_ID, REGION 'US', 'CHI' SUB_REGION 4000 BALANCE, to_date('1-JUN-2012 10:45:00 am', 'dd-mon-yyyy hh:mi:ss am') LAST_UPD_TIME, 'A' FLAG of union double all the
Select 'PQR2', 'UK', 'LN', 2000, To_Date('1-JUL-2012 10:46:00 am', 'dd-mon-yyyy hh:mi:ss am'), has ' starting from dual Union All
Select 'ABC1', 'IND","MAMA", 3500, To_Date('1-AUG-2012 11:47:00 am', 'dd-mon-yyyy hh:mi:ss am'), 'A' from dual Union All
Select "LMN3", "US", "NJ", 2500, To_Date('1-SEP-2012 09:49:00 am', 'dd-mon-yyyy hh:mi:ss am'), 'A' from dual Union All
Select "PQR2", "UK", "MC", 2600, To_Date('1-OCT-2012 04:45:00 am', 'dd-mon-yyyy hh:mi:ss am'), 'A' from dual Union All
Select 'ABC1', 'US', 'NY', 3200, To_Date('1-OCT-2012 06:45:00 am', 'dd-mon-yyyy hh:mi:ss am'), has ' starting from dual Union All
Select "LMN3", "UK", "BT", 2400, To_Date('1-NOV-2012 07:45:00 am', 'dd-mon-yyyy hh:mi:ss am'), has ' From Dual
)
Select * from tbl_nm
I need the output below.
PQR2 UK MC 2600 1 OCTOBER 2012 04:45
ABC1 US NY 3500 October 1, 2012 06:45
LMN3 UK BT 2500 November 1, 2012 07:45
The need the disc according to this system_id flagged as "A". But if the last disc of 'd' then it must show that the amount, but the file should be displayed in 'A '.
I've tried a few and got stuck. Help, please. Not able to get a balance '.
This question is a bit similar to needing help with a query result
With Tbl_Nm as
(
Select 'ABC1' System_Id, region 'US', 'CHI' Sub_Region, 4000 balance, To_Date('1-JUN-2012 10:45:00 am', 'dd-mon-yyyy hh:mi:ss am') Last_Upd_Time, 'A' flag of double Union All
Select 'PQR2', 'UK', 'LN', 2000, To_Date('1-JUL-2012 10:46:00 am', 'dd-mon-yyyy hh:mi:ss am'), has ' starting from dual Union All
Select 'ABC1', 'IND","MAMA", 3500, To_Date('1-AUG-2012 11:47:00 am', 'dd-mon-yyyy hh:mi:ss am'), 'A' from dual Union All
Select "LMN3", "US", "NJ", 2500, To_Date('1-SEP-2012 09:49:00 am', 'dd-mon-yyyy hh:mi:ss am'), 'A' from dual Union All
Select "PQR2", "UK", "MC", 2600, To_Date('1-OCT-2012 04:45:00 am', 'dd-mon-yyyy hh:mi:ss am'), 'A' from dual Union All
Select 'ABC1', 'US', 'NY', 3200, To_Date('1-OCT-2012 06:45:00 am', 'dd-mon-yyyy hh:mi:ss am'), has ' starting from dual Union All
Select "LMN3", "UK", "BT", 2400, To_Date('1-NOV-2012 07:45:00 am', 'dd-mon-yyyy hh:mi:ss am'), has ' From Dual
)
Select System_Id, region, Sub_Region, Balance, Last_Upd_Time of Tbl_Nm T1
where t1. Last_Upd_Time = (select max (Last_Upd_Time) in the Tbl_Nm T2 where T1.) SYSTEM_ID = T2. SYSTEM_ID)
So maybe you'd then
ORDER BY DECODE(flag,'D',9,1) ASC...
to get the Ds at the end of the list.
or
ORDER BY CASE WHAT flag = has ' (your other filters) AND then 9 or 1 end CSA,...
HTH
-
Need help to understand the query result
Hi gurus
I was reading one of the question here in this forum and its link is below:
I had some confusion related to this code and don't understand the logic of the out put, see query below:
Query
with sub_services as
(
Select su_seq 12323, 'HLR1' so_id, 1 seq Union double all the
Select su_seq 12323, "HLR2' so_id, seq 2 Union double all the
Select su_seq 12323, "A09" so_id, seq 3 of all the double union
Select su_seq 12333, "MO1" so_id, seq 4 Union double all the
Select su_seq 12333, "MO2' so_id, seq 5 Union double all the
Select su_seq 12333, "A09" so_id, 6 seq in union double all the
Select su_seq 12333, 'M0CR' so_id, seq 7 Union double all the
Select su_seq 12999, "LOL1' so_id, seq 8 Union double all the
Select su_seq 12999, "LOL2' so_id, seq 9 double
)
Select *.
of sub_services b
where exists (select 1 from sub_services
where su_seq = b.su_seq
and so_id = 'A09.
)
order by 2;
The query result
12323 A09 3
12333 6 A09
12323 HLR1 1
12323 HLR2 2
12333 M0CR 7
12333 4 MO1
12333 5 MO2
According to my understanding, the above query should return records in red only because of her is below command
It exists (select 1 from sub_services
where su_seq = b.su_seq
and so_id = 'A09.
but don't know why he's back 7 files, can someone help me understand the result...
It is query is functionally identical to the PL/SQL block, but much more effective.
declare
number of l_res;
Start
for line (select *)
sub_services) loop
Start
Select 1 from l_res
of sub_services
where su_seq = row.su_seq and
so_id = "A09" and
rownum = 1;
Essentially every row in the outer query are tested against him exists query. Given the correlation between two requests is based only on su_seq each line with a su_seq value returned by him is returned in the output.
Another way to think he uses instead a join condition. This query is equivalent to the query to exist
Select the main
of main sub_services
Join select (separate su_seq
of sub_services
where so_id = "A09") cond
We main.su_seq = cond.su_seq;
John
-
limit the number of query results for content Presenter CMIS
Hi dear,
I have a problem. I added content present on my page in Jdev ide, not at run time. And I need a query including the limitation of the number of results.
My query is: ${' SELECT * from ora: t:IDC:GlobalProfile WHERE the ora: p:xRegionDefinition =-"CSGMNEWS_REGDEF\" ORDER BY ora: p:dInDate DESC'}
I just want to add a number parameter.
Can you help me please? How can I limit the number of results?
Kind regards
Yacouba
Published by: erdo on 21.Mar.2013 18:37Hello.
Content Presenter has a setting (maxResults) to set the maximum returned results:
Sample:
xmlns = "http://xmlns.oracle.com/adf/controller/binding" Refresh 'ifNeeded' = >
When you add your CP to a page at design time, you can access the pageDefinition and provide more values for attributes of CP.
I hope this help you.
Kind regards.
-
Help on the game of query results
Hi gurus,
Have this survey for my requirement of dataset sql.
Sample, it's that I have to pick up the nonfunctional currency transactions.
Lets say for a given month, data that are present are for CurrencyA and CurrencyB for a particular account.
Account1 has a transaction does not work CurrencyA and CurrenyB then Account2 has only transaction to CurrencyB.
My current query result is that the 3 first lines, what I need is the 4th should also appear and be included.
CurrencyA - amount - account1
CurrencyB - amount - account1
CurrencyB - amount - Account2
CurrencyA - < '0' / or null >-Account2
I think that my request is based on the currency < x > I have, so it should be for each account, he has all the lines for each currency.
If please notify and let me know your thoughts.
Kind regards
Hello
It looks like you want an outer join partitioned.
I hope that answers your question.
If not, post a small example of data (CREATE TABLE and only relevant columns, INSERT statements) for all of the tables involved and the results desired from these data.
Explain, using specific examples, how you get these results from these data.
Always say what version of Oracle you are using (for example, 11.2.0.2.0).See the FAQ forum: https://forums.oracle.com/message/9362002
-
The query results: extract all lines?
I was looking for a feature that will allow me to choose to return "all records" in the query results window. The current behavior is fetching 50 files at a time (for example fetch 50 records when you scroll the results = s-l-o-w). What I would do, that is 'Recover all lines' and then use for the scroll bar to scroll "smoothly" to the last record. For example, the 8.0.6 Query Builder version has this feature and SQL Developer 3.0, if I right click on the results. I choose 'Count lines... ". ", looks like it would be a perfect place to put an option"retrieve all rows.If your application is to be able to quickly reach the last record in a query you can press Ctrl + Page Down (with emphasis in the grid of results) and you will automatically position your view to the last record in the query automatically go get all the results in the process.
You have no need to do anything with the mouse scroll is actually the fastest way to reach the desired line.
-
I need a query that selects the amount of records for each day of a table.
I need a query that selects the amount of records for each day of a table.
For example, the result would be:
1 14 date
Date 2-3
etc.
Any ideas?Sort:
SELECT count ([IDCommentaire]), convert (varchar, dateAdded, 112)
OF COMMENTSgroup by convert (varchar, dateAdded, 112)
-
How to write output to a txt file query results
have a sub query resulting in some records I want to write in a txt file
Select employee a.empcode a, b the address where a.empcode! = b.emp.codeYou can use UTL_FILE to do so, either specifically for your query or more generically as below:
As user sys:
CREATE OR REPLACE DIRECTORY TEST_DIR AS '\tmp\myfiles' / GRANT READ, WRITE ON DIRECTORY TEST_DIR TO myuser /
As myuser:
CREATE OR REPLACE PROCEDURE run_query(p_sql IN VARCHAR2 ,p_dir IN VARCHAR2 ,p_header_file IN VARCHAR2 ,p_data_file IN VARCHAR2 := NULL) IS v_finaltxt VARCHAR2(4000); v_v_val VARCHAR2(4000); v_n_val NUMBER; v_d_val DATE; v_ret NUMBER; c NUMBER; d NUMBER; col_cnt INTEGER; f BOOLEAN; rec_tab DBMS_SQL.DESC_TAB; col_num NUMBER; v_fh UTL_FILE.FILE_TYPE; v_samefile BOOLEAN := (NVL(p_data_file,p_header_file) = p_header_file); BEGIN c := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(c, p_sql, DBMS_SQL.NATIVE); d := DBMS_SQL.EXECUTE(c); DBMS_SQL.DESCRIBE_COLUMNS(c, col_cnt, rec_tab); FOR j in 1..col_cnt LOOP CASE rec_tab(j).col_type WHEN 1 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000); WHEN 2 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_n_val); WHEN 12 THEN DBMS_SQL.DEFINE_COLUMN(c,j,v_d_val); ELSE DBMS_SQL.DEFINE_COLUMN(c,j,v_v_val,2000); END CASE; END LOOP; -- This part outputs the HEADER v_fh := UTL_FILE.FOPEN(upper(p_dir),p_header_file,'w',32767); FOR j in 1..col_cnt LOOP v_finaltxt := ltrim(v_finaltxt||','||lower(rec_tab(j).col_name),','); END LOOP; -- DBMS_OUTPUT.PUT_LINE(v_finaltxt); UTL_FILE.PUT_LINE(v_fh, v_finaltxt); IF NOT v_samefile THEN UTL_FILE.FCLOSE(v_fh); END IF; -- -- This part outputs the DATA IF NOT v_samefile THEN v_fh := UTL_FILE.FOPEN(upper(p_dir),p_data_file,'w',32767); END IF; LOOP v_ret := DBMS_SQL.FETCH_ROWS(c); EXIT WHEN v_ret = 0; v_finaltxt := NULL; FOR j in 1..col_cnt LOOP CASE rec_tab(j).col_type WHEN 1 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_v_val); v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',','); WHEN 2 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_n_val); v_finaltxt := ltrim(v_finaltxt||','||v_n_val,','); WHEN 12 THEN DBMS_SQL.COLUMN_VALUE(c,j,v_d_val); v_finaltxt := ltrim(v_finaltxt||','||to_char(v_d_val,'DD/MM/YYYY HH24:MI:SS'),','); ELSE v_finaltxt := ltrim(v_finaltxt||',"'||v_v_val||'"',','); END CASE; END LOOP; -- DBMS_OUTPUT.PUT_LINE(v_finaltxt); UTL_FILE.PUT_LINE(v_fh, v_finaltxt); END LOOP; UTL_FILE.FCLOSE(v_fh); DBMS_SQL.CLOSE_CURSOR(c); END;
This allows the header line and the data to write into files separate if necessary.
for example
SQL> exec run_query('select * from emp','TEST_DIR','output.txt'); PL/SQL procedure successfully completed.
Output.txt file contains:
empno,ename,job,mgr,hiredate,sal,comm,deptno 7369,"SMITH","CLERK",7902,17/12/1980 00:00:00,800,,20 7499,"ALLEN","SALESMAN",7698,20/02/1981 00:00:00,1600,300,30 7521,"WARD","SALESMAN",7698,22/02/1981 00:00:00,1250,500,30 7566,"JONES","MANAGER",7839,02/04/1981 00:00:00,2975,,20 7654,"MARTIN","SALESMAN",7698,28/09/1981 00:00:00,1250,1400,30 7698,"BLAKE","MANAGER",7839,01/05/1981 00:00:00,2850,,30 7782,"CLARK","MANAGER",7839,09/06/1981 00:00:00,2450,,10 7788,"SCOTT","ANALYST",7566,19/04/1987 00:00:00,3000,,20 7839,"KING","PRESIDENT",,17/11/1981 00:00:00,5000,,10 7844,"TURNER","SALESMAN",7698,08/09/1981 00:00:00,1500,0,30 7876,"ADAMS","CLERK",7788,23/05/1987 00:00:00,1100,,20 7900,"JAMES","CLERK",7698,03/12/1981 00:00:00,950,,30 7902,"FORD","ANALYST",7566,03/12/1981 00:00:00,3000,,20 7934,"MILLER","CLERK",7782,23/01/1982 00:00:00,1300,,10
The procedure allows for the header and the data to separate files if necessary. Just by specifying the file name "header" will put the header and the data in a single file.
Adapt to the exit of styles and different types of data are needed.
-
Today I test the query result cache, but the result is not as I expected. Please give a few advices.thank you in advance.
SQL > create table (qrc_tab)
Number 2);
Table created.
SQL > insert into qrc_tab values (1);
1 line of creation.
SQL > insert into qrc_tab values (2);
1 line of creation.
SQL > insert into qrc_tab values (3);
1 line of creation.
SQL > insert into qrc_tab 4;
1 line of creation.
SQL > insert into qrc_tab values (5);
1 line of creation.
SQL > create or replace function slow_function (p_id in qrc_tab.id%TYPE)
2 back qrc_tab.id%TYPE DETERMINISTIC AS
3 BEGIN
4 DBMS_LOCK.sleep (1);
5 return p_id;
6 end;
7.
The function is created.
SQL > set timing on
SQL > select slow_function (id) in the qrc_tab;
SLOW_FUNCTION (ID)
-----------------
1
2
3
4
5
Elapsed time: 00:00:05.01
SQL > select / * + result_cache * / slow_function (id) of qrc_tab;
SLOW_FUNCTION (ID)
-----------------
1
2
3
4
5
Elapsed time: 00:00:05.00
SQL > select / * + result_cache * / slow_function (id) of qrc_tab;
SLOW_FUNCTION (ID)
-----------------
1
2
3
4
5
Elapsed time: 00:00:05.00
SQL > select / * + result_cache * / slow_function (id) of qrc_tab;
SLOW_FUNCTION (ID)
-----------------
1
2
3
4
5
Elapsed time: 00:00:05.00
I wonder why time is not fast? Help, please
create or replace function slow_function (p_id in qrc_tab.id%TYPE)
return qrc_tab.id%TYPE result_cache DETERMINISTIC AS
Start
DBMS_LOCK. Sleep (1);
return p_id;
end;
/
--
John Watson
Oracle Certified Master s/n
-
How to get SQL Developer 4.1 to display the query result?
SQL DEV 4.0.3.16.84 execution of a SELECT statement is stored in a .sql file causes the window of the query result of pop-up indicating the result of a SELECT statement. SQL DEV 4.1 is not to do so.
Oops on my part; my SQL formatting has been the root cause. I got used to insert split without any character of comment lines in front of them. For example:
==================================================
Select funny business;
The foregoing indicates the behavior described.
--==================================================
Select funny business;
With the dash double comment shows, the SQL works very well.
This is different than previous versions of SQL Developer, but is probably better functionality. I'll try to mark it as answered, but anyone with the admin should certainly do so if I can't.
-
Query results pane should display the entire XML following the execution of the query
Hi, I'm trying to get the xml output results returned in sqldeveloper returned in full.
they are truncated to.
I tried the trick / * xml * / but that is implemented in the form xml cdata codes and other structures of nickname.
Select xmlserialize (DOCUMENT
XMLELEMENT ("root",
XMLAttributes ('http://www.millicom.com' as 'xmlns'),
XMLAGG)
XMLELEMENT ("line",
XMLFOREST (U.username,
U.user_id,
U.PASSWORD,
U.ACCOUNT_STATUS,
U.LOCK_DATE,
U.EXPIRY_DATE,
U.DEFAULT_TABLESPACE,
U.TEMPORARY_TABLESPACE,
U.CREATED,
U.PROFILE,
U.INITIAL_RSRC_CONSUMER_GROUP,
U.EXTERNAL_NAME,
U.PASSWORD_VERSIONS,
U.EDITIONS_ENABLED,
U.AUTHENTICATION_TYPE)))
AS CLOB DASH)
from dba_users U
CROSS JOIN (select 1 of the double connect by level < = 10);
Thanks for any help you can offer.
JM
Hi jm,
In the line of query results, did scroll all the way to the right, then click twice on the «...» "at the end of the line to open the cell editor?
So again, who does not show all the XML, it may be a problem with the version of the ojdb6.jar in use (11.2.0.3 client or later is required), or whether or not the JDBC OCI/thickness is used. Read the following discussion: retrieve XMLTYPE based on very slow saved schema
Kind regards
Gary
SQL development team
-
Duplicates in hierarchical query results
Please use the suite of applications:
CREATE TABLE EMP
(NUMBER OF EMP_ID,
EMP_NAME VARCHAR2 (50).
NUMBER OF MANAGER_ID
);
INSERT INTO EMP VALUES(1,'SCOTT',);
INSERT INTO EMP VALUES(2,'JOHN',1);
INSERT INTO EMP VALUES(3,'ROB',2);
INSERT INTO EMP VALUES(4,'MIKE',2);
INSERT INTO EMP VALUES(5,'BOB',);
INSERT INTO EMP VALUES(6,'JEFF',5);
COMMIT;
SELECT * FROM EMP, (SELECT EMP_ID FROM EMP WHERE EMP_ID IN (1.5)) TEMP
START BY EMP. EMP_ID = TEMP. EMP_ID
CONNECT BY PRIOR EMP. EMP_ID = EMP. MANAGER_ID;
Basically, I first spend a few emp_ids a subquery and then want to see all records in the table emp which are direct or indirect of those emp_ids children.
But I get a lot of duplicate records. Can someone explain what is the reason behind this? I can use SEPARATE and spend, but there could be a problem with my request in the first place.
Help, please!
Thank you
RN
Hello
RN says:
Please use the suite of applications:
CREATE TABLE EMP
(NUMBER OF EMP_ID,
EMP_NAME VARCHAR2 (50).
NUMBER OF MANAGER_ID
);
INSERT INTO EMP VALUES(1,'SCOTT',);
INSERT INTO EMP VALUES(2,'JOHN',1);
INSERT INTO EMP VALUES(3,'ROB',2);
INSERT INTO EMP VALUES(4,'MIKE',2);
INSERT INTO EMP VALUES(5,'BOB',);
INSERT INTO EMP VALUES(6,'JEFF',5);
COMMIT;
SELECT * FROM EMP, (SELECT EMP_ID FROM EMP WHERE EMP_ID IN (1.5)) TEMP
START BY EMP. EMP_ID = TEMP. EMP_ID
CONNECT BY PRIOR EMP. EMP_ID = EMP. MANAGER_ID;
Basically, I first spend a few emp_ids a subquery and then want to see all records in the table emp which are direct or indirect of those emp_ids children.
But I get a lot of duplicate records. Can someone explain what is the reason behind this? I can use SEPARATE and spend, but there could be a problem with my request in the first place.
Help, please!
Thank you
RN
Thanks for posting the CREATE TABLE and INSERT statements; It is very useful.
When you do CONNECT BY and joins in the same query (sub-), joins are made first, and then CONNECT BY is performed on all results of the joints. In this example, you make a cross of PMCs and this join called temp. Let's see what the result set looks like:
SELECT *.
WCP
, (
SELECT emp_ID
WCP
WHERE emp_id IN (1.5)
) temp
;
Output:
EMP_ID, EMP_NAME MANAGER_ID EMP_ID
---------- ---------- ---------- ----------
1 SCOTT 1
2 1 1 JOHN
3 ROB 2 1
4 1 2 MIKE
5 BOB 1
JEFF 6 5 1
1 SCOTT 5
2 1 5 JOHN
3 ROB 2 5
4 2 5 MIKE
5 BOB 5
6 5 5 JEFF
Now, you do a CONNECT BY query on the result set. As you can see, there are 2 lines with emp_id = 2 in the set of results above, which explains why there are 2 lines in your query results with emp_id = 2. Similarly, the output defined above, there are 2 lines with emp_id = 3, and they all have two manager_id = 2, each of them is considered to be a child of each of each of the 2 rows with emp_id = 2, and therefore, you have 2 * 2 = 4 lines with emp_id = 3 in the output CONNECT BY.
What is a cross here join? Why must you temp? Why not just a CONNECT BY questioning one emp, like this:
SELECT *.
WCP
START WITH emp_id IN (1, 5)
CONNECT BY PRIOR Emp_id = manager_id
;
?
-
new to 4.02, no grid or column names in the query results
It is a bit strange, I have SQL Developer 4.02 just installed, and I don't see grid or column names in the query results. Don't see anything useful in tools > Preferences, what don't get me?
The worksheet gives you a couple of different ways to run a query...
1. instruction execute sheet icon toolbar (large green arrow, or Ctrl + Enter).
This produces a results tab of the query with the data displayed in a grid.
2. worksheet icon toolbar Execute the Script (the small tip of the green arrow on lined paper, or F5).
This produces a tab out of the Script with the data displayed on the printer.
If execution of the statement to Execute the Script, using some SQL * most orders will remove the column headers:
1. set the position
2. set the pagesize 0 (or 1 or 2).
Pagesize and linesize default is - 1. By default, the spreadsheet is free for formatting output script as he wishes. If you have not changed these settings in the spreadsheet, then see if you point to a startup script in Tools > Preferences > Database > name of the connection startup script file
Kind regards
Gary
SQL DeveloperTeam
Maybe you are looking for
-
Any tool of hard disk available?
Ive had my hard drive replaced as it was clicking / gel etc. But ive since heard some makes have their own hard drive tools that can solve the problem. Is this the case of toshiba? any help most appreciated.
-
Need help Can someone help me I am not very computer... my computer started sending multiple copies of any email sent again and again... like 26 copies for 1 person, please please someone can help me
-
RAM upgrade does not work on s100
I bought a new lenovo s100 netbook a week ago. I tried to increase the ram from 1 GB to 2 GB. However on the installation of the new ram stick doesnot boot netbook rather it shows a white screen with no message. the specifications of the new ram are
-
Wireless disabled after reboot
I have a HP laptop with a physical hardware switch on the adapter wireless with an indicator light. I did a clean install of Windows 7 Professional 64 - bit with no updates of Windows. I installed the latest drivers for everything. The wireless card
-
Automatic numbering of chapters given to 1 on a new page
HelloI'm working on the application of automatic numbering for my chapters.I'm able to accomplish the same use "Bullets and numbers" under "paragraph Styles".However, when I move to the next page, my chapter numbers given 1 again despite the use of t