Query with week identifier
I am building a module in which the user gives a particular date (date_param) and the module then queries in a particular block for all records where the date column equals
to_char(date_param, 'WW'). I tried doing it with a pre_query trigger on the block with this code:
to_char(:block_name.date_column, 'WW') := to_char(date_param, 'WW')
Needless to say, this doesn't work. How else can I do it?
Thanks in advance,
Paul.
Hi Paul
With the requirement of your you cannot assign a pre-query option like what you are mentioning, for in Pre-query you have to assign the values which are matching the datatype of base table item i.e in this case the date field of the base table block.
So the solution is, instead of specifying your to_char function in pre-query, (do not write anything in pre-query trigger related to this problem), use the Built-in set_block_property("base_table_block_name",DEFAULT_WHERE, 'to_char(date_param, ''WW'') = to_char('''| |:block_name.date_column| |''', ''WW'') ');
and then query the block.
Hope this works for you.
Regards
Mohammed R.Qurashi
<BLOCKQUOTE><font size="1" face="Verdana, Arial">quote:</font><HR>Originally posted by Paul Green ([email protected]):
I am building a module in which the user gives a particular date (date_param) and the module then queries in a particular block for all records where the date column equals
to_char(date_param, 'WW'). I tried doing it with a pre_query trigger on the block with this code:
to_char(:block_name.date_column, 'WW') := to_char(date_param, 'WW')
Needless to say, this doesn't work. How else can I do it?
Thanks in advance,
Paul.<HR></BLOCKQUOTE>
null
Similar Messages
-
Query with error "...Invalid Identifier"
Hi
I have a query that returns an error as follows:
ORA-00904: "AT_HOURLY_ATTENDANCE_RECORDS"."ABSENCE_TYPE": invalid identifier
The code is as follows:
SELECT
AT_HOURLY_ATTENDANCE_RECORDS.absence_type AS "value",
AT_HOURLY_ATTENDANCE_RECORDS.absence_type AS "LABEL",
'2' AS "SORTORDER"
FROM AT_HOURLY_ATTENDANCE_RECORDS
WHERE
AT_HOURLY_ATTENDANCE_RECORDS.district_number = ('1000')
AND AT_HOURLY_ATTENDANCE_RECORDS.SCHOOL_ID IN ('705')
AND AT_HOURLY_ATTENDANCE_RECORDS.SCHOOL_YEAR = '2006'
ORDER BY SORTORDER,LABELAll suggestions and help are gratefully acknowledged. Thanks in advanceHmmm, very similar error with one of your others posts :
help with query with sub query
Same cause, same effect ?
Nicolas. -
Hi,
This is my First table: REPORT
with report as (
select 'vendor_1' as vendor,to_date('1/1/2012','DD/MM/YYYY') supply_date, 'customer_1'as customer,'item_1' as item1, 110 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/3/2012','MM/DD/YYYY') supply_date,'customer_1'as customer, 'item_1' as item1,120 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/3/2012','MM/DD/YYYY') supply_date, 'customer_1'as customer, 'item_1' as item1,130 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/4/2012','MM/DD/YYYY') supply_date,'customer_1'as customer, 'item_1' as item1,140 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/10/2012','MM/DD/YYYY') supply_date, 'customer_1'as customer, 'item_1' as item ,200as cost from dual union all
select 'vendor_1' as vendor,to_date('1/23/2012','MM/DD/YYYY') supply_date, 'customer_1'as customer, 'item_1' as item,0 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/6/2012','MM/DD/YYYY') supply_date,'customer_2'as customer, 'item_1' as item1,160 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/7/2012','MM/DD/YYYY') supply_date,'customer_2'as customer, 'item_1' as item1,170 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/8/2012','MM/DD/YYYY') supply_date,'customer_2'as customer, 'item_1' as item1,180 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/9/2012','MM/DD/YYYY') supply_date,'customer_2'as customer,'item_1' as item1,190 as cost from dual union all
select 'vendor_1' as vendor,to_date('1/20/2012','MM/DD/YYYY') supply_date,'customer_2'as customer,'item_1' as item1,300 as cost from dual)
THIS IS MY SECOND TABLE: TEMP_WEEK
WITH temp_week a s(
SELECT '01/01/2012 to 07/01/2012' AS week from dual union all
SELECT '08/01/2012 to 14/01/2012' AS week from dual union all
SELECT '15/01/2012 to 21/01/2012' AS week from dual union all
SELECT '22/01/2012 to 28/01/2012' AS week from dual union all
SELECT '29/01/2012 to 31/01/2012' AS week from dual)
To find weekly sales i have wrote below query:
SELECT week,vendor,customer,SUM (cost)
FROM ( SELECT week,vendor,customer,SUM (cost) cost
FROM (SELECT CASE
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 1 AND 7 THEN
'01/01/2012 to 07/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 8 AND 14 THEN
'08/01/2012 to 14/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 15 AND 21 THEN
'15/01/2012 to 21/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 22 AND 28 THEN
'22/01/2012 to 28/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 29 AND 31 THEN
'29/01/2012 to 31/01/2012'
END
week,vendor,customer,cost
FROM report)
GROUP BY week, vendor, customer
UNION ALL
SELECT tw.week,vendor,customer,0
FROM ( SELECT week,vendor,customer,SUM (cost) cost
FROM (SELECT CASE
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 1 AND 7 THEN
'01/01/2012 to 07/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 8 AND 14 THEN
'08/01/2012 to 14/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 15 AND 21 THEN
'15/01/2012 to 21/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 22 AND 28 THEN
'22/01/2012 to 28/01/2012'
WHEN TO_NUMBER (TO_CHAR (TRUNC (supply_date), 'DD')) BETWEEN 29 AND 31 THEN
'29/01/2012 to 31/01/2012'
END
week,vendor,customer,cost
FROM report)
GROUP BY week, vendor, customer),temp_week tw)
GROUP BY week, vendor, customer
ORDER BY vendor, customer, week ;
with above query i am getting below output:
with output as(
select '01/01/2012 to 07/01/2012' as week,'vendor_1' as vendor,'customer_1' as customer, 500 as cost from dual union all
select '08/01/2012 to 14/01/2012' as week,'vendor_1' as vendor,'customer_1' as customer, 200 as cost from dual union all
select '15/01/2012 to 21/01/2012' as week,'vendor_1' as vendor,'customer_1' as customer, 0 as cost from dual union all
select '22/01/2012 to 28/01/2012' as week,'vendor_1' as vendor,'customer_1' as customer, 0 as cost from dual union all
select '29/01/2012 to 31/01/2012' as week,'vendor_1' as vendor,'customer_1' as customer, 0 as cost from dual union all
select '01/01/2012 to 07/01/2012' as week,'vendor_1' as vendor,'customer_2' as customer, 330 as cost from dual union all
select '08/01/2012 to 14/01/2012' as week,'vendor_1' as vendor,'customer_2' as customer, 370 as cost from dual union all
select '15/01/2012 to 21/01/2012' as week,'vendor_1' as vendor,'customer_2' as customer, 300 as cost from dual union all
select '22/01/2012 to 28/01/2012' as week,'vendor_1' as vendor,'customer_2' as customer, 0 as cost from dual union all
select '29/01/2012 to 31/01/2012' as week,'vendor_1' as vendor,'customer_2' as customer, 0 as cost from dual )
Clearly I have used cross join. But I want to get same output with some other way. I dont want to use cross join and Union
please help me in this.DUPLICATE!
SQL Query help. -
Query with two spatial operators
Hi,
I need prepare query with sdo_any_interact and sdo_filter
Following query doesn't work any ideas?
SELECT ROWID, GEOMETRY, 'MVDEMO:L.MAJOR TOLL ROAD', null, 'null', -1, 'rule#0'
FROM PARCELS P
WHERE SDO_ANYINTERACT(P.GEOMETRY,
(SELECT L.GEOMETRY
FROM SHP_SIMPLYFIED L
WHERE L.TASK = '4')) = 'TRUE'
and MDSYS.SDO_FILTER(P.GEOMETRY
, MDSYS.SDO_GEOMETRY(2003
, 2180
, NULL
, MDSYS.SDO_ELEM_INFO_ARRAY(1, 1003, 3)
, MDSYS.SDO_ORDINATE_ARRAY(482850, 236980, 510333, 248133))
--, MDSYS.SDO_ORDINATE_ARRAY(:MVQBOXXL, :MVQBOXYL, :MVQBOXXH, :MVQBOXYH))
, 'querytype=WINDOW') = 'TRUE'
Kind regards,
TomekHi Jack,
Join - the same error:
the error is
ORA-00904: "MDSYS"."SDO_PQRY": invalid identifier
00904. 00000 - "%s: invalid identifier"
*Cause:
*Action:
Error at Line: 13 Column: 60
TASK column - is not null, unique
parcels are partitioned table (3 000 000 rows)
i think this error is connected with partitoning
in the first version i put any_interact into view with read only option
select * from this view works fine but take a long time,
next i build theme in MapBuider but preview return error (same), (MapBuilder buid query on view and add query_window filter to reduce number of objects)
Thx,
Tomek -
Wrong result for query with like and %
I have a strange problem with query with like and %.
When I run this script:
ALTER SESSION SET NLS_SORT = 'BINARY_CI';
ALTER SESSION SET NLS_COMP = 'LINGUISTIC';
-- SELECT * FROM NLS_SESSION_PARAMETERS;
-- drop table test1;
CREATE TABLE TEST1(K1 NVARCHAR2(80));
INSERT INTO TEST1 VALUES ('gsdk');
INSERT INTO TEST1 VALUES ('ąxyz');
INSERT INTO TEST1 VALUES ('ŁFa');
INSERT INTO TEST1 VALUES ('ła');
INSERT INTO TEST1 VALUES ('Śab');
INSERT INTO TEST1 VALUES ('Śrrrb');
commit;
select * from TEST1 where k1 like N'Ł%';
I get this:
K1
ŁFa
ła
Śab <- WRONG
Śrrrb <- WRONG
4 rows selected
When i change datatype to varchar2 this code work correct.
Is this a bug or what ?
The execution plan:
PLAN_TABLE_OUTPUT
SQL_ID d3d64aupz4bb5, child number 2
select * from TEST1 where k1 like N'Ł%'
Plan hash value: 4122059633
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | | | 2 (100)| |
|* 1 | TABLE ACCESS FULL| TEST1 | 1 | 82 | 2 (0)| 00:00:01 |
Predicate Information (identified by operation id):
1 - filter((NLSSORT("K1",'nls_sort=''BINARY_CI''')>=HEXTORAW('014200'
) AND NLSSORT("K1",'nls_sort=''BINARY_CI''')<HEXTORAW('01610100') ))
Note
- dynamic sampling used for this statement (level=2)DATABASE NLS CONFIGURATION:
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_COMP BINARY
NLS_SORT BINARY
Oracle version 11.2.0.2.0 -
Query with order by & View/procedure
1)I have a query its getting joined with few tables and the base table contains 12 billion rows . my issue is when I execute the query with necessary parameter am getting the result in few seconds . but when I add an order by for any column am not getting the result even after 15 minuts.
The sort column is an indexed column and I have even tried with the primary column of the base table but no change .. is there any way to make it faster with order by ??
2)I have got a view which also getting joined with few high volume tables . when I call the view with required parameter am not getting the result even after 15 minutes.. but when I took out the query of the view and hardcode the value am getting the result in 3 seconds . so I just made it to a procedure that returns a cursor . now its working fine .. could you please explain me the reason for this ….??
Please help …select * from
(select Rownum RowNO,Qr.* from
(select T1.c1,T2.C2,T3.c3 from TI,T2,T3
where < all required joins>
order by Ti.c)Qr
where RowNum <20 )
where RowNO >10 ;As said before:
Your view very likely prevented predicate pushing and by manually adding the predicate inside the query, you changed the semantics of the query.
Your view contains a rownum column. This prevents predicate pushing because the semantics of the query changes. An example to clarify:
SQL> explain plan
2 for
3 select *
4 from ( select empno
5 , ename
6 , sal
7 from emp
8 )
9 where empno = 7839
10 /
Uitleg is gegeven.
SQL> select * from table(dbms_xplan.display)
2 /
PLAN_TABLE_OUTPUT
Plan hash value: 4024650034
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 14 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 14 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | EMP_PK | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("EMPNO"=7839)
14 rijen zijn geselecteerd.
SQL> exec dbms_lock.sleep(1)
PL/SQL-procedure is geslaagd.
SQL> explain plan
2 for
3 select *
4 from ( select empno
5 , ename
6 , sal
7 from emp
8 where empno = 7839
9 )
10 /
Uitleg is gegeven.
SQL> select * from table(dbms_xplan.display)
2 /
PLAN_TABLE_OUTPUT
Plan hash value: 4024650034
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 14 | 1 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 14 | 1 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | EMP_PK | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
2 - access("EMPNO"=7839)
14 rijen zijn geselecteerd.The previous two queries show that in this case the predicate "empno = 7839" can be pushed inside the view. Both queries are semantically the same.
However, when you add a rownum to your view definition, like you did, the predicates cannot be pushed inside the view:
SQL> exec dbms_lock.sleep(1)
PL/SQL-procedure is geslaagd.
SQL> explain plan
2 for
3 select *
4 from ( select empno
5 , ename
6 , sal
7 , rownum rowno
8 from emp
9 )
10 where empno = 7839
11 /
Uitleg is gegeven.
SQL> select * from table(dbms_xplan.display)
2 /
PLAN_TABLE_OUTPUT
Plan hash value: 2077119879
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 14 | 644 | 3 (0)| 00:00:01 |
|* 1 | VIEW | | 14 | 644 | 3 (0)| 00:00:01 |
| 2 | COUNT | | | | | |
| 3 | TABLE ACCESS FULL| EMP | 14 | 196 | 3 (0)| 00:00:01 |
Predicate Information (identified by operation id):
1 - filter("EMPNO"=7839)
15 rijen zijn geselecteerd.
SQL> exec dbms_lock.sleep(1)
PL/SQL-procedure is geslaagd.
SQL> explain plan
2 for
3 select *
4 from ( select empno
5 , ename
6 , sal
7 , rownum rowno
8 from emp
9 where empno = 7839
10 )
11 /
Uitleg is gegeven.
SQL> select * from table(dbms_xplan.display)
2 /
PLAN_TABLE_OUTPUT
Plan hash value: 1054641936
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 46 | 1 (0)| 00:00:01 |
| 1 | VIEW | | 1 | 46 | 1 (0)| 00:00:01 |
| 2 | COUNT | | | | | |
| 3 | TABLE ACCESS BY INDEX ROWID| EMP | 1 | 14 | 1 (0)| 00:00:01 |
|* 4 | INDEX UNIQUE SCAN | EMP_PK | 1 | | 0 (0)| 00:00:01 |
Predicate Information (identified by operation id):
4 - access("EMPNO"=7839)
16 rijen zijn geselecteerd.Now the two queries are not the same anymore. If you wonder why, please look carefully at the query results of both:
SQL> select *
2 from ( select empno
3 , ename
4 , sal
5 , rownum rowno
6 from emp
7 )
8 where empno = 7839
9 /
EMPNO ENAME SAL ROWNO
7839 KING 5000 9
1 rij is geselecteerd.
SQL> select *
2 from ( select empno
3 , ename
4 , sal
5 , rownum rowno
6 from emp
7 where empno = 7839
8 )
9 /
EMPNO ENAME SAL ROWNO
7839 KING 5000 1
1 rij is geselecteerd.Regards,
Rob. -
Hi,
I have a weekly report which needs to be generated for a particular day.
query is given below.
select last_update_dt transaction_date, COUNT(*) total_transaction,
COUNT(decode(upper(status),'SUCCESS',1)) Success_count,
COUNT(decode(upper(status),'FAILED',1)) Failed_count,
COUNT(DECODE(UPPER(STATUS),'ERROR',1)) ERROR_COUNT FROM GCIF_TRACKING_TABLE WHERE
CREATE_TS BETWEEN TO_TIMESTAMP('07/11/2012 00:00:00' ,'mm/dd/yyyy hh24:mi:ss') AND
TO_TIMESTAMP('07/11/2012 23:59:59','mm/dd/yyyy hh24:mi:ss' ) AND ACCT_NUM IS NOT NULL GROUP BY LAST_UPDATE_DT;
Am trying to generate a query with 30 minutes interval.
For this above query, instead of taking total count, i would require success and failure count on 30 min interval basis.
eg: time stamp: 00:00 - 00:30 , 00:31 - 01:00 etc
Could anyone pls help me in this. Thanks in advance.
can anyone revert on this pls. i need it very badly.
Edited by: 946948 on Jul 17, 2012 5:23 AMThis is the forum for Oracle's SQL Developer tool, not for general SQL or PL/SQL questions. This question would be better answered in the PL/SQL.
-
How to create an ABAP Query with OR logical expression in the select-where
Hi,
In trying to create an ABAP query with parameters. So it will select data where fields are equal to the parameters entered. The default logical expression is SELECT.. WHERE... AND.. However I want to have an OR logical expression instead of AND.. how can I attain this??
Please help me on this.. Points will be rewarded.
Thanks a lot.
Regards,
Question ManHi Bhupal, Shanthi, and Saipriya,
Thanks for your replies. But that didn't answer my question.
Bhupal,
You cannot just replace AND with OR in an ABAP QUERY. ABAP QUERY is a self generated SAP code. You'll just declare the tables, input parameters and output fields to be displayed and it will create a SAP standard code. If you'll try to change the code and replace the AND with OR in the SAP standard code, the system will require you to enter access key/object key for that particular query.
Shanthi,
Yes, that is exactly what need to have. I need to retireve DATA whenever one of the conditions was satisfied.
Saipriya,
Like what I have said, this is a standard SAP code so we can't do your suggestion.
I have already tried to insert a code in the ABAP query (there's a part there wherein you can have extra code) but that didn't work. Can anybody help me on this.
Thanks a lot.
Points will be rewarded.
Regards,
Question Man -
Error while trying to Execute the Query with Customer Exit
Hi Experts,
I am having a Query with Customer Exit, it is working fine for all the Employess, except for one. When i try to remove the Customer Exit it is working for her too. Below is the error i am getting.
system error in program SAPLLRK0 and form RSRDR; CHECK_NAV_INIT_BACK
Thanks,
Kris.Hello Kris,
Are you working with multiprovider? Please check if OSS notes 813454,840080 or 578948 are applicable in your case.
Regards,
Praveen -
Report on BEx query with 2 structures (one in rows and one in columns)
Hi, experts! I have to make Crystall report on BEx query with 2 structures, one in columns (with KF's), and one in rows. Is it possible to create such report? Because when I create such report, I cant see fields in structures, only characteristics fields.
Ok, I found samr problem in another thread. Sorry.
Edited by: Mikhail Sychev on Dec 5, 2009 9:53 PMHey Flora,
Happy to hear that its working now.
Answering your question, again its upto the connection and report format you are using. Based on your question i hope you your report output should be like this.
You cannot map to two labels for the series, again this report format is possible only in cross tab through Webi. I would suggest you to concatenate the material and month in a dimension in webi like below.
I have done the concatenation in excel level, i would suggest you to do that in webi. Try to reduce the formula as much in excel.
or
If you are using Query browser connection, then i would suggest you to create a separate report which will display the actual vs plan material wise, here you need to pass the material as a prompt.
Hope this helps in clear, please revert me for any clarification. -
Query with bind variable, how can use it in managed bean ?
Hi
I create query with bind variable (BindControlTextValue), this query return description of value that i set in BindControlTextValue variable, how can i use this query in managed bean? I need to set this value in String parameter in managed bean.
ThanksPut the query in a VO and execute it the usual way.
If you need to, you can write a parameterized method in VOImpl that executes the VO query with the parameter and then call that method from the UI (as a methodAction binding) either through the managed bean or via a direct button click on the page. -
Report query with bind variable
Trying to create a report query for xsl-fo print. For output format I pick "derive from item" then pick the item name from the list, on the next screen, I paste the query with the bind variable. on the next step test query, I always get "data not found" regardless what value I type in. This is the same query that I ran under sql commands without any issues.
Does anyone run into the same issue as I have when attempted to create a query with bind var ? There is no problem creating a query without bind varibles. . thanks.
MunsharHi, please did you get any solution to this issue? I am having similar challenge right now.
select EMP.DEPTNO as DEPTNO,
DEPT.DNAME as DNAME,
EMP.EMPNO as EMPNO,
EMP.ENAME as ENAME,
EMP.JOB as JOB,
EMP.MGR as MGR,
EMP.HIREDATE as HIREDATE,
EMP.SAL as SAL
from SCOTT.DEPT DEPT,
SCOTT.EMP EMP
where EMP.DEPTNO=DEPT.DEPTNO
and DEPT.DNAME =upper(:dname)
This run perfectly in sql developer, toad, and even inside publisher if I login directly to publisher to create report.
Generating this same query in shared component query builder and testing it returns no data found. If I remove the last line, it works. but with the last line, it return no data found. It seems no one has been able to provide solution to this issue -
SQL query with Bind variable with slower execution plan
I have a 'normal' sql select-insert statement (not using bind variable) and it yields the following execution plan:-
Execution Plan
0 INSERT STATEMENT Optimizer=CHOOSE (Cost=7 Card=1 Bytes=148)
1 0 HASH JOIN (Cost=7 Card=1 Bytes=148)
2 1 TABLE ACCESS (BY INDEX ROWID) OF 'TABLEA' (Cost=4 Card=1 Bytes=100)
3 2 INDEX (RANGE SCAN) OF 'TABLEA_IDX_2' (NON-UNIQUE) (Cost=3 Card=1)
4 1 INDEX (FAST FULL SCAN) OF 'TABLEB_IDX_003' (NON-UNIQUE)
(Cost=2 Card=135 Bytes=6480)
Statistics
0 recursive calls
18 db block gets
15558 consistent gets
47 physical reads
9896 redo size
423 bytes sent via SQL*Net to client
1095 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
55 rows processed
I have the same query but instead running using bind variable (I test it with both oracle form and SQL*plus), it takes considerably longer with a different execution plan:-
Execution Plan
0 INSERT STATEMENT Optimizer=CHOOSE (Cost=407 Card=1 Bytes=148)
1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TABLEA' (Cost=3 Card=1 Bytes=100)
2 1 NESTED LOOPS (Cost=407 Card=1 Bytes=148)
3 2 INDEX (FAST FULL SCAN) OF TABLEB_IDX_003' (NON-UNIQUE) (Cost=2 Card=135 Bytes=6480)
4 2 INDEX (RANGE SCAN) OF 'TABLEA_IDX_2' (NON-UNIQUE) (Cost=2 Card=1)
Statistics
0 recursive calls
12 db block gets
3003199 consistent gets
54 physical reads
9448 redo size
423 bytes sent via SQL*Net to client
1258 bytes received via SQL*Net from client
3 SQL*Net roundtrips to/from client
1 sorts (memory)
0 sorts (disk)
55 rows processed
TABLEA has around 3million record while TABLEB has 300 records. Is there anyway I can improve the speed of the sql query with bind variable? I have DBA Access to the database
Regards
IvanMany thanks for your reply.
I have run the statistic already for the both tableA and tableB as well all the indexes associated with both table (using dbms_stats, I am on 9i db ) but not the indexed columns.
for table I use:-
begin
dbms_stats.gather_table_stats(ownname=> 'IVAN', tabname=> 'TABLEA', partname=> NULL);
end;
for index I use:-
begin
dbms_stats.gather_index_stats(ownname=> 'IVAN', indname=> 'TABLEB_IDX_003', partname=> NULL);
end;
Is it possible to show me a sample of how to collect statisc for INDEX columns stats?
regards
Ivan -
Query with tables VEPVG, VBAK, VBAP AND KONV
hi all,
I have a requirement, that is Open Sale Orders which is having Special Discount. I am trying to write a Query, But KONV table is not coming into the joins. my execution plans is bellow
VEPVG --> VBAK vbak-knumv = konv-knumv and konv-kschl = Special Discount
VBAP
Please explain me, how to design the query with conditions.
Thanks & Regards,
SrinivasHi,
Have you referred this help document.
http://help.sap.com/printdocu/core/Print46c/EN/data/pdf/BCSRVQUE/BCSRVQUE.pdf
Regards - Shree -
SQL Report query with condition (multiple parameters) in apex item?
Hello all,
I have a little problem and can't find a solution.
I need to create reports based on a SQL query or I.R. Nothing hard there.
Then I need to add the WHERE clause dynamically with javascript from an Apex item.
Again not very hard. I defined an Apex item, set my query like this "SELECT * FROM MYTAB WHERE COL1 = :P1_SEARCH" and then I call the page setting the P1_SEARCH value. For instance COL1 is rowid. It works fine.
But here is my problem. Let's consider that P1_SEARCH will contain several rowids and that I don't know the number of those values,
(no I won't create a lot of items and build a query with so many OR!), I would like sotheming like "SELECT * FROM MYTAB WHERE ROWID IN (:P1_SEARCH) with something like : ROWID1,ROWID2 in P1_SEARCH.
I also tried : 'ROWID1,ROWID2' and 'ROWID1','ROWID2'
but I can't get anything else than filter error. It works with IN with one value but as soon as there are two values or more, it seems than Apex can't read the string.
How could I do that, please?
Thanks for your help.
Maxmnoscars wrote:
But here is my problem. Let's consider that P1_SEARCH will contain several rowids and that I don't know the number of those values,
(no I won't create a lot of items and build a query with so many OR!), I would like sotheming like "SELECT * FROM MYTAB WHERE ROWID IN (:P1_SEARCH) with something like : ROWID1,ROWID2 in P1_SEARCH.
I also tried : 'ROWID1,ROWID2' and 'ROWID1','ROWID2'
but I can't get anything else than filter error. It works with IN with one value but as soon as there are two values or more, it seems than Apex can't read the string.For a standard report, see +{message:id=9609120}+
For an IR—and improved security avoiding the risk of SQL Injection—use a <a href="http://download.oracle.com/docs/cd/E17556_01/doc/apirefs.40/e15519/apex_collection.htm#CACFAICJ">collection</a> containing the values in a column instead of a CSV list:
{code}
SELECT * FROM MYTAB WHERE ROWID IN (SELECT c001 FROM apex_collections WHERE collection_name = 'P1_SEARCH')
{code}
(Please close duplicate threads spawned by your original question.)
Maybe you are looking for
-
Help! Have a serious problem with macbook pro!, please see description!
so, this must have been about a month ago at the most when it started playing up. basicly, I noticed that A-it has all of a sudden become allot slower than before, B- applications are crashing regularly, this seems to be getting worse and worse, C- i
-
Where can I find arrows to insert into a video in PE 12?
I would like to know where I can find a variety of arrows, how to find them and then how to insert them. Example; I do not know where and how to find Clip Art in case arrows might be located there. I have searched the archives, but failed to find a
-
User Exits for Purchase order & requistion to control Material description
Dear Experts, I am creating a Purchasing requisition & Purchase order for certain Material Type. Currently user can change material description at item level without anu check. Now I have different material type like PACKING(ZPAC), Raw material(ZROH)
-
Does anybody know why all of a sudden the time that shows on the face does not update to the local time the minutes are ok but the hrs are all over the place
-
I use web-based templates for formulating replies to email queries of customers. When I click on a template, pop-up windows open for entering all non-general/specific details in the template. With the installation of the new version of Firefox, what