Run query based on parameter
Hi,
I have a report where i'm selecting values based on parameter entered by user. There are only 2 options e.g A or B.
If A then select *
where name = A
or if B then select *
where name != A basically select everything apart from A.
Can anyone please tell me how to do this. Thanks.
There are many ways to do this .
easy way that i use.
in the "where clause" of sql query statement
SELECT decode(SUBSTR(TO_CHAR(FIELD_NAME),1,3),'EFT','IND','USA')
FROM TABLE
WHERE decode(SUBSTR(TO_CHAR(FIELD_NAME),1,3),'EFT','IND','USA')=
NVL(:P_SOURCE,decode(SUBSTR(TO_CHAR(FIELD_NAME),1,3),'EFT','IND','USA')
Then you have to add these'IND and 'USA' in parameter form( drop down list)
note: use only required functions.
Similar Messages
-
Running query based on other query result
Hi Again Friends.
first of all i am very much thankful for members who sent me prompt response and been helping for last 2 days.I am again with query,maybe a lame one.
I want to run a query based on record return from previous query.FOr instance i have query
Select sum(marks) from studentMarks,student_id where course_Id=4 and student_Id
IN
(Select StudentId from Student where dept_id=3)
the courseID and studentID are being repeated in the above table
now I want to show Student Names with the marks Obtained and who belong to dept_id=3,i want to run other query to get Name based on StudentId resutned from previous one.
Is there anyway to do this in oracle to save result in some resultSe and use it later?
ThankyouDo you mean something like:
Select sum(marks), S.StudentId, S.StudentName
from StudentMarks M
, Student S
where S.course_Id=4
and M.Student_id = S.StudentId
and S.student_Id
IN
(Select StudentId from Student where dept_id=3)
group by StudentId, StudentName -
How do I change the query based on parameter value
hi,
Based on parameter value I want to change my query. If paramter value is 'O' i want the 'order by depno' in query if the value is null i don't want the order by clause.
How do I achieve this.
Thanks
RamU can use lexical parameter
i.e u create one user parameter and in query
u use this parameter with ¶m_name
ex.
select val,prize from stock where sr_no > :srno
orderby &ord_by
here ord_by is lexical parameter
and set its intial value to 'sr_no'
so u can get result order by sr_no
this parameter is set from form so u will give condition in form and depending
on condition u will pass this parameter from form. -
Running Query Based on Condition
Hi
I want to run different query based on a condition. I am not able to execute the following query. is this the right way to run different query based on condition?
SELECT * FROM (
CASE WHEN (SELECT COUNT (*) from data1 where ID = 1 AND stype = 'A') > 0 THEN select * from data where ID = 1 AND stype = 'A'
WHEN (SELECT COUNT (*) from data1 where ID = 1 AND stype = 'B') > 0 THEN select * from data where ID = 1 AND stype = 'B'
WHEN (SELECT COUNT (*) from data1 where ID = 1 AND stype = 'C') > 0 THEN select * from data where ID = 1 AND stype = 'C'
END
) as a;
Edited by: user6016744 on 21 Apr, 2011 12:40 AMThis works for us; hope it helps.
CREATE OR REPLACE FUNCTION SCHEMA.GET_STEP_COST (loan_number_in in VARCHAR2, step_code_in in VARCHAR2 default null, ws_in in VARCHAR2 default null )
RETURN VARCHAR2 IS retval VARCHAR2 (50);
/*passing in loan number and step code you need the cost for, will return the cost*/
BEGIN
CASE ws_in --depending on workstation in is the table select
WHEN 'F' THEN
EXECUTE IMMEDIATE 'SELECT '|| step_code_in ||' FROM CLAIMS_FCL_STEPS WHERE LOAN_NUMBER = '|| loan_number_in ||'' INTO retval;
WHEN 'R' THEN
EXECUTE IMMEDIATE 'SELECT '|| step_code_in ||' FROM CLAIMS_RS_STEPS WHERE LOAN_NUMBER = '|| loan_number_in ||'' INTO retval;
WHEN 'L' THEN
EXECUTE IMMEDIATE 'SELECT '|| step_code_in ||' FROM CLAIMS_LM_STEPS WHERE LOAN_NUMBER = '|| loan_number_in ||'' INTO retval;
ELSE
retval := 0;
END CASE;
RETURN retval;
END GET_STEP_COST;
/ -
Differet Load query based on parameter input
Hi all,
I'm developing my first application with HTML DB and I have a problem. I have a table with no primary key and a unique index on three columns and only one of these can be null. I'm building a form with my events that execute a query based on the data passed from another page.
My problem is that I have two queries (one with the clause column_a is null and another one with column_a=value) but I'm not able to condition the execution on more than one item values; I'd like to know how to express into conditional processing section
PXXvariable_1 is null and PXXvariable_2 is not null.
I can use a workaround in the query using nvl but I'm wondering if is possible to expresso such constraints in constional processing section.
Thanks to all,
GiovanniGiovanni,
See this section of the documentation on the HTML DB URL syntax:
http://download-west.oracle.com/docs/cd/B14117_01/appdev.101/b10992/mvl_fund.htm#sthref447
You want something like this:
f?P=101:<page ID>:&APP_SESSION.::::PXXPARAM_1,PXXPARAM2:VAL,
Here, PXXPARAM_1 will be set to VAL and will be set to NULL
Sergio -
Executing query based on parameter.
Hi, iam new to Oracle Reports and need some help on handling multiple queries.
I have 2 queries A,B where A is a subset of B ( B has some extra columns to be included in the select and where clause).
Now i need to execute A and B according to a parameter value which i select using a list box.
For example there are two values open and close in the list box.
If i select open, query A should execute and if i select close, B should execute and report be diaplayed accodingly...Please let me know how this should be done.
ThanxIn the data model you can not have a variable number of columns based on the parameter selection. You need to bring the maximum number of columns in the data model, and then show or hide certain columns in the layout model using format triggers based on the parameters.
-
SSRS report with tabular model - MDX query to filter parameter data based on Tuple value.
Hello Everyone,
I am working on SSRS report in which a tabular model is being used as a backend.
I want to filter the report parameters which are dependent to other parameters. Like, country, state, and cities drop downs.
All are multi-select parameters. I am using MDX queries to filter the parameters data.
Based on selected one or more countries, the data of states needs to be filtered.
The point is the text which is being displayed in state dropdown for each state name is combination of 3 different members.
So, I created the following Tuple for the same and can see the expected display names in states dropdown.
"("+
[Location].[Code 1].CURRENTMEMBER.UNIQUENAME +","+
[Location].[Code 2].CURRENTMEMBER.UNIQUENAME +","+
[Location].[Descr].CURRENTMEMBER.UNIQUENAME +")"
Now, when I would like filter the cities data based on selected one or more states, I am unable to pass the multiple Tuples (more than one selected Tuples) as parameter for cities dropdown.
The following is my query for City parameter. It is working well when I select only one State from the dropdown.
However, when I select multiple states, it is unable to convert the Tuple into SET in ELSE part of IIF condition specified in following query.
Can anybody help me how to resolve the error that I am getting about STRTOSET function?
Or
Are there any other alternatives to achieve this requirement?
Any help would be much appreciated.
Query:
WITH MEMBER [Measures].[ParameterCaption] AS [City].[City Business].CURRENTMEMBER.MEMBER_CAPTION
MEMBER [Measures].[ParameterValue] AS [City].[City Business].CURRENTMEMBER.UNIQUENAME
MEMBER [Measures].[ParameterLevel] AS [City].[City Business].CURRENTMEMBER.LEVEL.ORDINAL
SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS ,
[City].[City Business].Children ON ROWS
FROM (
SELECT ( STRTOSET(@State, CONSTRAINED) ) ON COLUMNS FROM [Model])
WHERE ( IIF( STRTOSET(@State).Count= 1,
STRTOTUPLE(@State, CONSTRAINED),
STRTOSET("{
("+
[Location].[Code 1].CURRENTMEMBER.UNIQUENAME +","+
[Location].[Code 2].CURRENTMEMBER.UNIQUENAME +","+
[Location].[Descr].CURRENTMEMBER.UNIQUENAME
+ ")
}",CONSTRAINED )) ) CELL PROPERTIES VALUE
Thanks, Ankit Shah
Inkey Solutions, India.
Microsoft Certified Business Management Solutions Professionals
http://www.inkeysolutions.com/MicrosoftDynamicsCRM.htmlHi,
I used following dynamic query in expression of dataset of parameter and it works like a charm.
"WITH MEMBER [Measures].[ParameterCaption] AS [City].[City Business].CURRENTMEMBER.MEMBER_CAPTION "&
"MEMBER [Measures].[ParameterValue] AS [City].[City Business].CURRENTMEMBER.UNIQUENAME "&
"MEMBER [Measures].[ParameterLevel] AS [City].[City Business].CURRENTMEMBER.LEVEL.ORDINAL "&
"SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]} ON COLUMNS , " &
"[City].[City Business].Children ON ROWS " &
" FROM [Model] WHERE ({"& join(Parameters!Location.Value,",") &"}) CELL PROPERTIES VALUE"
Thanks, Ankit Shah
Inkey Solutions, India.
Microsoft Certified Business Management Solutions Professionals
http://www.inkeysolutions.com/MicrosoftDynamicsCRM.html -
How to setup Multiple report layouts based on parameter selection
I'm trying to create a report that will be based on the parameter values a user select. There will be 3 different layouts for the report.
Customer
Salesperson
Category
If the user selects one of the three a different layout will be displayed.
This is probably a simple solution but my Reports 6i skills are a little rusty.
Your advise would be appreciated.Ok so you have a parameter form, and some parameters. In the data model, you can put your 3 queries. In the layout, as Ino said, put all 3 frames that you could possibly have.
The way I would use to choose which query to use is below. Others may have other methods, but I like this.
Ok lets say you have query A,B,C for simplicity. You have one parameter (P_PARAM1) on the form, and the user can choose A,B or C. Based on the parameter, you choose which query to use.
In query A, you would add this line to the where statement:
and :P_PARAM1 = 'A' You add the same lines to queries B and C, but change the letter obviously. So if the user enters A, it will only run query A because that was the parameter selected.
Now for the layout, click on the frame that corresponds with group/query A. You would click F11 or launch the PL/SQL editor, and add the following format trigger (or something similar).
function F_GRP_A return boolean is
begin
IF :P_PARAM1 = 'A' then
return (TRUE);
ELSE
return (FALSE);
END IF;
end;Ok - then add that same logic to Frame B and C, and based on the parameter it will hide or show the frame.
Hope that helps - thats a basic way to do what you're looking for! -
Query based taxonomy from scratch gives NoSuchMethodError...
I'm trying to create a query based taxonomy following the instuctions specified in the help docs: KM Platform -> Admin Guide -> Content Mgmt -> Taxonomies and Classification -> Creating a QBT -> from scratch. I created an index on a newly created (hence empty) folder in the 'documents' repository. So, essentially, the data source points to that folder. Also, I selected 'TREX Classification' on the 'Service' drop-down while creating the index. I left the crwler profile as blank. Then I went on to create a new 'Query Based Taxonomy'. I was able to create it alright, but as soon as I click on it to add folder and the such, I get this error:
java.lang.NoSuchMethodError
at com.sapportals.wcm.repository.manager.taxonomy.TaxonomyNamespaceManager.getDocumentTaxRMRids(TaxonomyNamespaceManager.java:1876)
at com.sapportals.wcm.repository.manager.taxonomy.TaxonomyNamespaceManager.getTaxonomyClassResources(TaxonomyNamespaceManager.java:1831)
at com.sapportals.wcm.repository.manager.taxonomy.TaxonomyNamespaceManager.addChildDocuments(TaxonomyNamespaceManager.java:1942)
at com.sapportals.wcm.repository.manager.taxonomy.TaxonomyNamespaceManager.getChildren(TaxonomyNamespaceManager.java:368)
at com.sapportals.wcm.repository.CollectionImpl.internalGetChildren(CollectionImpl.java:966)
at com.sapportals.wcm.repository.CollectionImpl.getChildren(CollectionImpl.java:179)
Any help in solving this is highly apprecaited.
We run EP6 SP2.
I did NOT create a 'crawler profile' for this set up.
thanks,
Biju.Hi Biju,
re. your NW'04 SP stack 4 migration intention:
NW'04 is still in ramp-up (SP stack 4 is the current shipment bundle of it) so at the current point in time, only participating ramp-up customers can use it.
A migration from EP6.0 SP2 to NW'04 will be possible (but not during the ramp-up phase).
From a Knowledge Management & Collaboration perspective, we will port most of the NW'04 SP stack 4 functions to EP6.0 SP2 as well. These functions will be shipped as EP6.0 SP2 Patch 5 (planned shipment date beginning of Q4 / 2004) so for mid-term, you can also plan to stay on EP6.0 SP2 if you have no other pressing reasons for going to NW'04 (e.g. enhanced Web AS functions).
This feature porting from NW -> EP6.0 SP2 is an 'only-once' action, however, and NetWeaver will be the release for new features in the future.
Regards,
Joerg -
SSRS 2008 - hide chart lines based on parameter selected
How to control visibility of chart lines based on Params selected by user?
By default, my report display last 3 years worth of data (including current) with Month on the x axis and Counts on the y axis. I have two Boolean parameters:
TwoYrs? T/F
ThreeYrs? T/F
if False is selected for TwoYr and ThreeYr parameters then I want to hide chart lines corresponding to last year and the year before.
What I've tried: Created 3 Series groups with filters. eg. YearSeries1 to return only current year data and applying an expression to display it if params TwoYrs and ThreeYrs = False. and so on for YearSeries2 to return current + last
years data if param TwoYrs is True and ThreeYrs = False. But I don't see where to add expression to control the display of the individual series groups. I am open to any way of doing this, but this seemed most logical.Hi Ok-Hee,
In your Source Query just need to filter the series data based on the Parameters.
I have written sample query below:-
select * from
select 1 monthnumber , 'Jan' MonthName, 2013 year,100 amount
union
select 1 monthnumber , 'Jan' MonthName, 2014 year ,200 amount
union
select 1 monthnumber , 'Jan' MonthName, 2015 year , 300 amount
union
select 2 monthnumber , 'Feb' MonthName, 2013 year, 300 amount
union
select 2 monthnumber , 'Feb' MonthName, 2014 year, 350 amount
union
select 2 monthnumber , 'Feb' MonthName, 2015 year,200 amount
union
select 3 monthnumber , 'Mar' MonthName, 2013 year, 380 amount
union
select 3 monthnumber , 'Mar' MonthName, 2014 year, 100 amount
union
select 3 monthnumber , 'Mar' MonthName, 2015 year, 500 amount
)t
where year in (
select distinct FilterYear from
select case when @TwoYrs=1 then year(getdate())-1 else year(getdate()) end FilterYear
union
select case when @TwoYrs=1 and @ThreeYrs =1 then year(getdate())-2 else year(getdate()) end FilterYear
union
select year(getdate()) FilterYear
) t
I have created one post in my blog , you can check the result.
https://msbitips.wordpress.com/2015/03/12/ssrs-2008-hide-chart-lines-based-on-parameter-selected/
Thanks
Prasad -
Long running query--- included steps given by Randolf
Hi,
I have done my best to follow Randolf instruction word-by-word and hope to get solution for my
problem soon. Sometime back I have posted a thread on this problem then got busy with other
stuff and was not able to follow it. Here I am again with same issue.
here is link for my previous post
long running query in database 10gHere is backgroud of my requriemment.
I am working on Oracle forms 10g which is using package given below. We want to display client information
with order count basd on different status like Pending, Error, back Order, expedited, std shipping.
Output will look something like.
client name pending error backorder expedited std shipping
ABC 24 0 674 6789 78900
XYZ 35 673 5700 0 798274
.There are total 40 clients . The long running query are expedited and std shipping.
When i run package from Oracle Form Developer it takes 3 mintues to run but when I run same query in our application using forms
(which uses Oracle Application Server) it takes around 1 hour, which is completly unacceptable.
User wants it be done in less than 1 mintue.
I have tried combining Pending,error and backorder queries together but as far as I know it will not
work in Oracle Form as we need a place holder for each status.
Please dont think it is Forms related question, it is a Performance problem.
PACKAGE BODY ORDER_COUNT_PKG IS
PROCEDURE post_query IS
BEGIN
BEGIN
SELECT count(*)
INTO :ORDER_STATUS.PENDING
FROM orders o
WHERE o.status = 'P'
AND (parent_order_id is null
OR (order_type='G'
AND parent_order_id=original_order_number))
AND o.client = :ORDER_STATUS.CLIENT_NUMBER;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT count(*)
INTO :ORDER_STATUS.ERROR
FROM orders o
WHERE o.status = 'E'
AND (parent_order_id is null
OR (order_type='G'
AND parent_order_id=original_order_number))
AND o.client = :ORDER_STATUS.CLIENT_NUMBER;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT count(*)
INTO :ORDER_STATUS.BACK_ORDER
FROM orders o
WHERE o.status = 'B'
AND (parent_order_id is null
OR (order_type='G'
AND parent_order_id=original_order_number))
AND o.client = :ORDER_STATUS.CLIENT_NUMBER;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT count(*)
INTO :ORDER_STATUS.EXPEDITE
FROM orders o,shipment_type_methods stm
WHERE o.status in ('A','U')
AND (o.parent_order_id is null
OR (o.order_type = 'G'
AND o.parent_order_id = o.original_order_number))
AND o.client = stm.client
AND o.shipment_class_code = stm.shipment_class_code
AND (nvl(o.priority,'1') = '2'
OR stm.surcharge_amount <> 0)
AND o.client = :ORDER_STATUS.CLIENT_NUMBER
GROUP BY o.client;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
BEGIN
SELECT count(*)
INTO :ORDER_STATUS.STD_SHIP
FROM orders o,shipment_type_methods stm
WHERE o.status in ('A','U')
AND (o.parent_order_id is null
OR (o.order_type = 'G'
AND o.parent_order_id = o.original_order_number))
AND nvl(o.priority,'1') <> '2'
AND o.client = stm.client
AND o.shipment_class_code = stm.shipment_class_code
AND stm.surcharge_amount = 0
AND o.client = :ORDER_STATUS.CLIENT_NUMBER
GROUP BY o.client;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
END post_query;
END ORDER_COUNT_PKG;one of the query which is taking long time is
SELECT count(*)
FROM orders o,shipment_type_methods stm
WHERE o.status in ('A','U')
AND (o.parent_order_id is null
OR (o.order_type = 'G'
AND o.parent_order_id = o.original_order_number))
AND nvl(o.priority,'1') <> '2'
AND o.client = stm.client
AND o.shipment_class_code = stm.shipment_class_code
AND stm.surcharge_amount = 0
AND o.client = :CLIENT_NUMBER
GROUP BY o.clientThe version of the database is 10.2.1.0.2
SQL> alter session force parallel dml;These are the parameters relevant to the optimizer:
SQL> show parameter user_dump_dest
NAME TYPE VALUE
user_dump_dest string /u01/app/oracle/admin/mcgemqa/
udump
SQL> show parameter optimizer
NAME TYPE VALUE
optimizer_dynamic_sampling integer 2
optimizer_features_enable string 10.2.0.4
optimizer_index_caching integer 0
optimizer_index_cost_adj integer 100
optimizer_mode string ALL_ROWS
optimizer_secure_view_merging boolean TRUE
SQL> show parameter db_file_multi
NAME TYPE VALUE
db_file_multiblock_read_count integer 16
SQL> show parameter db_block_size
NAME TYPE VALUE
db_block_size integer 8192
SQL> show parameter cursor_sharing
NAME TYPE VALUE
cursor_sharing string EXACTHere is the output of EXPLAIN PLAN:
SQL> explain plan for
2 SELECT count(*)
3 FROM orders o,shipment_type_methods stm
4 WHERE o.status in ('A','U')
5 AND (o.parent_order_id is null
6 OR (o.order_type = 'G'
7 AND o.parent_order_id = o.original_order_number))
8 AND nvl(o.priority,'1') <> '2'
9 AND o.client = stm.client
10 AND o.shipment_class_code = stm.shipment_class_code
11 AND stm.surcharge_amount = 0
12 AND o.client = :CLIENT_NUMBER
13 GROUP BY o.client
14 /
Explained.
Elapsed: 00:00:00.12
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 559278019
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 35 | 46764 (3)| 00:09:22 |
| 1 | SORT GROUP BY NOSORT | | 1 | 35 | 46764 (3)| 00:09:22 |
|* 2 | TABLE ACCESS BY INDEX ROWID | ORDERS | 175K| 3431K| 25979 (3)| 00:05:12 |
| 3 | NESTED LOOPS | | 25300 | 864K| 46764 (3)| 00:09:22 |
|* 4 | TABLE ACCESS BY INDEX ROWID| SHIPMENT_TYPE_METHODS | 1 | 15 | 2 (0)| 00:00
|* 5 | INDEX RANGE SCAN | U_SHIPMENT_TYPE_METHODS | 2 | | 1 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | ORDERS_ORDER_DATE | 176K| | 2371 (8)| 00:00:29 |
Predicate Information (identified by operation id):
2 - filter(("O"."PARENT_ORDER_ID" IS NULL OR "O"."ORDER_TYPE"='G' AND
"O"."PARENT_ORDER_ID"=TO_NUMBER("O"."ORIGINAL_ORDER_NUMBER")) AND NVL("O"."PRIORITY",'1')<>'2
AND "O"."SHIPMENT_CLASS_CODE"="STM"."SHIPMENT_CLASS_CODE")
4 - filter("STM"."SURCHARGE_AMOUNT"=0)
5 - access("STM"."CLIENT"=:CLIENT_NUMBER)
6 - access("O"."CLIENT"=:CLIENT_NUMBER)
filter("O"."STATUS"='A' OR "O"."STATUS"='U')
24 rows selected.
Elapsed: 00:00:00.86
SQL> rollback;
Rollback complete.
Elapsed: 00:00:00.07Here is the output of SQL*Plus AUTOTRACE including the TIMING information:
SQL> SELECT count(*)
2 FROM orders o,shipment_type_methods stm
3 WHERE o.status in ('A','U')
4 AND (o.parent_order_id is null
5 OR (o.order_type = 'G'
6 AND o.parent_order_id = o.original_order_number))
7 AND nvl(o.priority,'1') <> '2'
8 AND o.client = stm.client
9 AND o.shipment_class_code = stm.shipment_class_code
10 AND stm.surcharge_amount = 0
11 AND o.client = :CLIENT_NUMBER
12 GROUP BY o.client
13 /
Elapsed: 00:00:03.09
Execution Plan
Plan hash value: 559278019
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 35 | 46764 (3)| 00:09:22 |
| 1 | SORT GROUP BY NOSORT | | 1 | 35 | 46764 (3)| 00:09:22 |
|* 2 | TABLE ACCESS BY INDEX ROWID | ORDERS | 175K| 3431K| 25979 (3)| 00:05:12 |
| 3 | NESTED LOOPS | | 25300 | 864K| 46764 (3)| 00:09:22 |
|* 4 | TABLE ACCESS BY INDEX ROWID| SHIPMENT_TYPE_METHODS | 1 | 15 | 2 (0)| 00:00
|* 5 | INDEX RANGE SCAN | U_SHIPMENT_TYPE_METHODS | 2 | | 1 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | ORDERS_ORDER_DATE | 176K| | 2371 (8)| 00:00:29 |
Predicate Information (identified by operation id):
2 - filter(("O"."PARENT_ORDER_ID" IS NULL OR "O"."ORDER_TYPE"='G' AND
"O"."PARENT_ORDER_ID"=TO_NUMBER("O"."ORIGINAL_ORDER_NUMBER")) AND NVL("O"."PRIORITY",'1')<>'2
AND "O"."SHIPMENT_CLASS_CODE"="STM"."SHIPMENT_CLASS_CODE")
4 - filter("STM"."SURCHARGE_AMOUNT"=0)
5 - access("STM"."CLIENT"=:CLIENT_NUMBER)
6 - access("O"."CLIENT"=:CLIENT_NUMBER)
filter("O"."STATUS"='A' OR "O"."STATUS"='U')
Statistics
55 recursive calls
0 db block gets
7045 consistent gets
0 physical reads
0 redo size
206 bytes sent via SQL*Net to client
238 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> disconnect
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> The TKPROF output for this statement looks like the following:
SELECT count(*)
FROM orders o,shipment_type_methods stm
WHERE o.status in ('A','U')
AND (o.parent_order_id is null
OR (o.order_type = 'G'
AND o.parent_order_id = o.original_order_number))
AND nvl(o.priority,'1') <> '2'
AND o.client = stm.client
AND o.shipment_class_code = stm.shipment_class_code
AND stm.surcharge_amount = 0
AND o.client = :CLIENT_NUMBER
GROUP BY o.client
call count cpu elapsed disk query current rows
Parse 1 0.01 0.00 0 0 0 0
Execute 1 0.04 0.04 0 0 0 0
Fetch 2 2.96 2.91 0 7039 0 1
total 4 3.01 2.95 0 7039 0 1
Misses in library cache during parse: 1
Misses in library cache during execute: 1
Optimizer mode: ALL_ROWS
Parsing user id: 95
Rows Row Source Operation
1 SORT GROUP BY NOSORT (cr=7039 pr=0 pw=0 time=2913701 us)
91 TABLE ACCESS BY INDEX ROWID ORDERS (cr=7039 pr=0 pw=0 time=261997906 us)
93 NESTED LOOPS (cr=6976 pr=0 pw=0 time=20740 us)
1 TABLE ACCESS BY INDEX ROWID SHIPMENT_TYPE_METHODS (cr=2 pr=0 pw=0 time=208 us)
3 INDEX RANGE SCAN U_SHIPMENT_TYPE_METHODS (cr=1 pr=0 pw=0 time=88 us)(object id 81957)
91 INDEX RANGE SCAN ORDERS_ORDER_DATE (cr=6974 pr=0 pw=0 time=70 us)(object id 81547)
Elapsed times include waiting on following events:
Event waited on Times Max. Wait Total Waited
---------------------------------------- Waited ---------- ------------
SQL*Net message to client 2 0.00 0.00
SQL*Net message from client 2 0.02 0.02
********************************************************************************The DBMS_XPLAN.DISPLAY_CURSOR output:
SQL> variable CLIENT_NUMBER varchar2(20)
SQL> exec :CLIENT_NUMBER := '14'
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.06
SQL> SELECT /*+ gather_plan_statistics */ count(*)
2 FROM orders o,shipment_type_methods stm
3 WHERE o.status in ('A','U')
4 AND (o.parent_order_id is null
5 OR (o.order_type = 'G'
6 AND o.parent_order_id = o.original_order_number))
7 AND nvl(o.priority,'1') <> '2'
8 AND o.client = stm.client
9 AND o.shipment_class_code = stm.shipment_class_code
10 AND stm.surcharge_amount = 0
11 AND o.client = :CLIENT_NUMBER
12 GROUP BY o.client
13 /
COUNT(*)
91
Elapsed: 00:00:02.85
SQL> set termout on
SQL> select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
PLAN_TABLE_OUTPUT
SQL_ID 4nfj368y8w6a3, child number 0
SELECT /*+ gather_plan_statistics */ count(*) FROM orders o,shipment_type_methods stm WHERE
o.status in ('A','U') AND (o.parent_order_id is null OR (o.order_type = 'G'
AND o.parent_order_id = o.original_order_number)) AND nvl(o.priority,'1') <> '2' AND
o.client = stm.client AND o.shipment_class_code = stm.shipment_class_code AND
stm.surcharge_amount = 0 AND o.client = :CLIENT_NUMBER GROUP BY o.client
Plan hash value: 559278019
| Id | Operation | Name | Starts | E-Rows | A-Rows | A-Time | Buffers |
| 1 | SORT GROUP BY NOSORT | | 1 | 1 | 1 |00:00:02.63 | 7039 |
|* 2 | TABLE ACCESS BY INDEX ROWID | ORDERS | 1 | 175K| 91 |00:03:56.87 | 7039 |
| 3 | NESTED LOOPS | | 1 | 25300 | 93 |00:00:00.02 | 6976 |
|* 4 | TABLE ACCESS BY INDEX ROWID| SHIPMENT_TYPE_METHODS | 1 | 1 | 1 |00:00:00.01 | 2 |
|* 5 | INDEX RANGE SCAN | U_SHIPMENT_TYPE_METHODS | 1 | 2 | 3 |00:00:00.01 | 1 |
|* 6 | INDEX RANGE SCAN | ORDERS_ORDER_DATE | 1 | 176K| 91 |00:00:00.01 | 6974 |
Predicate Information (identified by operation id):
2 - filter((("O"."PARENT_ORDER_ID" IS NULL OR ("O"."ORDER_TYPE"='G' AND
"O"."PARENT_ORDER_ID"=TO_NUMBER("O"."ORIGINAL_ORDER_NUMBER"))) AND NVL("O"."PRIORITY",'1')<>'
"O"."SHIPMENT_CLASS_CODE"="STM"."SHIPMENT_CLASS_CODE"))
4 - filter("STM"."SURCHARGE_AMOUNT"=0)
5 - access("STM"."CLIENT"=:CLIENT_NUMBER)
6 - access("O"."CLIENT"=:CLIENT_NUMBER)
filter(("O"."STATUS"='A' OR "O"."STATUS"='U'))
32 rows selected.
Elapsed: 00:00:01.30
SQL> I'm looking forward for suggestions how to improve the performance of this statement.
Thanks
SandyPlease find explain plan for No hint
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 559278019
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 35 | 46764 (3)| 00:09:22 |
| 1 | SORT GROUP BY NOSORT | | 1 | 35 | 46764 (3)| 00:09:22 |
|* 2 | TABLE ACCESS BY INDEX ROWID | ORDERS | 175K| 3431K| 25979 (3)| 00:05:12 |
| 3 | NESTED LOOPS | | 25300 | 864K| 46764 (3)| 00:09:22 |
|* 4 | TABLE ACCESS BY INDEX ROWID| SHIPMENT_TYPE_METHODS | 1 | 15 | 2 (0)| 00:00
|* 5 | INDEX RANGE SCAN | U_SHIPMENT_TYPE_METHODS | 2 | | 1 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | ORDERS_ORDER_DATE | 176K| | 2371 (8)| 00:00:29 |
Predicate Information (identified by operation id):
2 - filter(("O"."PARENT_ORDER_ID" IS NULL OR "O"."ORDER_TYPE"='G' AND
"O"."PARENT_ORDER_ID"=TO_NUMBER("O"."ORIGINAL_ORDER_NUMBER")) AND NVL("O"."PRIORITY",'1')<>'2
AND "O"."SHIPMENT_CLASS_CODE"="STM"."SHIPMENT_CLASS_CODE")
4 - filter("STM"."SURCHARGE_AMOUNT"=0)
5 - access("STM"."CLIENT"=:CLIENT_NUMBER)
6 - access("O"."CLIENT"=:CLIENT_NUMBER)
filter("O"."STATUS"='A' OR "O"."STATUS"='U')
24 rows selected.
Elapsed: 00:00:00.86Explain Plan for Parallel Hint
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 559278019
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 35 | 46764 (3)| 00:09:22 |
| 1 | SORT GROUP BY NOSORT | | 1 | 35 | 46764 (3)| 00:09:22 |
|* 2 | TABLE ACCESS BY INDEX ROWID | ORDERS | 175K| 3431K| 25979 (3)| 00:05:12 |
| 3 | NESTED LOOPS | | 25300 | 864K| 46764 (3)| 00:09:22 |
|* 4 | TABLE ACCESS BY INDEX ROWID| SHIPMENT_TYPE_METHODS | 1 | 15 | 2 (0)| 00:00
|* 5 | INDEX RANGE SCAN | U_SHIPMENT_TYPE_METHODS | 2 | | 1 (0)| 00:00:01 |
|* 6 | INDEX RANGE SCAN | ORDERS_ORDER_DATE | 176K| | 2371 (8)| 00:00:29 |
Predicate Information (identified by operation id):
2 - filter(("O"."PARENT_ORDER_ID" IS NULL OR "O"."ORDER_TYPE"='G' AND
"O"."PARENT_ORDER_ID"=TO_NUMBER("O"."ORIGINAL_ORDER_NUMBER")) AND NVL("O"."PRIORITY",'1')<>'2
AND "O"."SHIPMENT_CLASS_CODE"="STM"."SHIPMENT_CLASS_CODE")
4 - filter("STM"."SURCHARGE_AMOUNT"=0)
5 - access("STM"."CLIENT"='14')
6 - access("O"."CLIENT"='14')
filter("O"."STATUS"='A' OR "O"."STATUS"='U')
24 rows selected.
Elapsed: 00:00:08.92Explain Plan for USE_Hash hint
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
Plan hash value: 1465232248
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
| 0 | SELECT STATEMENT | | 1 | 35 | 46786 (3)| 00:09:22 |
| 1 | SORT GROUP BY NOSORT | | 1 | 35 | 46786 (3)| 00:09:22 |
|* 2 | HASH JOIN | | 25300 | 864K| 46786 (3)| 00:09:22 |
|* 3 | TABLE ACCESS BY INDEX ROWID| SHIPMENT_TYPE_METHODS | 1 | 15 | 2 (0)| 00:00:0
|* 4 | INDEX RANGE SCAN | U_SHIPMENT_TYPE_METHODS | 2 | | 1 (0)| 00:00:01 |
|* 5 | TABLE ACCESS BY INDEX ROWID| ORDERS | 175K| 3431K| 46763 (3)| 00:09:22 |
|* 6 | INDEX RANGE SCAN | ORDERS_ORDER_DATE | 176K| | 4268 (8)| 00:00:52 |
Predicate Information (identified by operation id):
2 - access("O"."CLIENT"="STM"."CLIENT" AND "O"."SHIPMENT_CLASS_CODE"="STM"."SHIPMENT_CLASS_COD
E")
3 - filter("STM"."SURCHARGE_AMOUNT"=0)
4 - access("STM"."CLIENT"='14')
5 - filter(("O"."PARENT_ORDER_ID" IS NULL OR "O"."ORDER_TYPE"='G' AND
"O"."PARENT_ORDER_ID"=TO_NUMBER("O"."ORIGINAL_ORDER_NUMBER")) AND NVL("O"."PRIORITY",'1')<>'2
6 - access("O"."CLIENT"='14')
filter("O"."STATUS"='A' OR "O"."STATUS"='U')
25 rows selected.
Elapsed: 00:00:01.09
SQL> Thanks
Sandy -
Query Based Taxonomy - Dynamic Creation of a Query Problem
Hi,
I'm trying to create new category nodes in a taxonomy and to assing them queries. I know how to do this, but I encountered a strange behavior. Here is the situation:
I have a string property DocumentType. When manualy creating a query, it looks like:
DocumentType CONTAINS "Some string"
But when I do the same using code I get:
DocumentType IS "Some string"
And as a result of this, the taxanomy is not working properly.
Here is the code:
indexService =
(IIndexService) ResourceFactory
.getInstance()
.getServiceFactory()
.getService(
IServiceTypesConst.INDEX_SERVICE);
// This kind of classification index offers functionality working with query based taxonomies
qbcIndex = (IQBClassificationIndex) indexService.getIndex(indexId);
// Get a query folder - a query folder is a representation of a query based taxonomies category
queryFolder = qbcIndex.getQueryFolder(RID.getRID(folder));
// List of IQueryEntry objects for the query folder
queryEntryList = queryFolder.getQuery(context);
// Cast the IQBClassificationIndex into a ISearchIndex object
searchIndex = (ISearchIndex) qbcIndex;
queryEntry = searchIndex.getNewQueryEntry();
queryEntry.setRowType(IQueryEntry.ROW_TYPE_ATTRIBUTE);
queryEntry.setPropertyName(propertyName);
queryEntry.setPropertyOperator(IQueryEntry.PROPERTY_OPERATOR_EQUAL);
queryEntry.setValue(propertyValue);
queryEntry.setTermAction(IQueryEntry.TERM_ACTION_EXACT);
queryEntryList.add(queryEntry);
// Set the query for the query folder
queryFolder.setQuery(queryEntryList, context);
qbcIndex.updateCategoryContents("Document_Types", false, context);
Can somebody tell me what am I doing wrong please. Isn't it because of IQueryEntry.PROPERTY_OPERATOR_EQUAL? Is there any substring operator?
Thanks a lot.Hi, Robert
In this moment, I have a problem with Query Based Taxonomy, maybe could you help me. I insert the query in to the taxonomy from code, but when i use the method
qbcIndex.updateCategoryContents("/taxonomies/borrame5/Prueba2", false, context);
I got the next exception:
#1.5#0014C210F3D1002A000001200000565B000431CC93AD5979#1180654627543#System.err#sap.com/irj#System.err#dummy01#10241#####SAPEngine_Application_Thread[impl:3]_17##0#0#Error##Plain### at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)#
#1.5#0014C210F3D100310000012B0000565B000431CCC47166AB#1180655445698#System.err#sap.com/irj#System.err#dummy01#10241#####SAPEngine_Application_Thread[impl:3]_18##0#0#Error##Plain###com.sapportals.wcm.service.indexmanagement.IndexNotReadyException: Some documents are not included in this update because indexing has not been finished yet.#
#1.5#0014C210F3D100310000012C0000565B000431CCC4717417#1180655445701#System.err#sap.com/irj#System.err#dummy01#10241#####SAPEngine_Application_Thread[impl:3]_18##0#0#Error##Plain### at com.sapportals.wcm.service.indexmanagement.retrieval.trex.AbstractTrexIndex.updateCategoryContents(AbstractTrexIndex.java:2493)#
I have doubt what parameters i need to pass to the method updateCategoryContents,
Let me give some information:
taxonomy:
/taxonomies/borrame5/Prueba2
repository:
/documents/Portal_KOF/KM/Pruebas1/Pruebas Versionamiento
classification and search index:
borrame5
I can't classify automatically, when i insert the query from code. When I manually insert the query from the portal, automatic classification run perfectly.
Thanks
Greetings
JARO. -
SQL Query based BI Pub report - Taking too long to produce the output
Hi All,
I was trying to produce a BI Publisher based report through enterprise edition of BI Publisher 10.1.3.4
Its a sql query based report and it has around 20 columns and it has around 1 lakh records.
The query actually takes only 2 seconds to execute in the database but when we execute from BI Publisher it takes a long time and also it times out most of the time
Is there something I am missing in the configuration options ?
Thanks
ShasiI am facing the same problem as well. I am using the Publisher Web service API to run a report with 1 Million records. This report is configured to use OBIEE. It takes a lot of time to generate the report ( around 30 Mins) and even though OBIEE generates the data, my web service client either timesout. Even after increasing the timeout, a 500 internal server error is thrown . Does anyone know of a solution to this.
Thanks -
Incorrect data for proportional factor in query based on Planning Book
hi,
We have upgraded from APO 3.1 to SCM 5.0.
Post upgrade, the proportional factor is being displayed incorrectly in the BEX query based on the Planning Book data if we run the query for multiple months.
for eg,
if, in the planning book, the proportional factor for months 10.2009 and 11.2009 are as follows :
Brand >> Month >> Proportional Factor
B1 >> 10.2009 >> 70%
B2 >> 10.2009 >> 30%
B1 >> 11.2009 >> 80%
B2 >> 11.2009 >> 20%
When we execute the query for the above brands for months 10.2009 and 11.2009,
then, at the total level, the % displayed is 100% and the data at brand level is halved.
We do not have any exits or formulae operating at the key figure level in the query and hence are unable to figure out why this is happenning...
Any clue on this ?
regards,
AnirudhaResolved.
-
SOURCING10: Passing parameters to a Query Based webservice using JAVA
Hi Experts,
I have been working on consuming a Query based webservice published in Souricng10 in a simple JAVA class. The query has a filter parameter which is not mandatory. I am able to consume the webservice using the GET method and display the content of the webservice. But when i try to POST a value to the filter parameter of the query i am getting the following error:
java.io.IOException : Server returned HTTP response code: 415 for URL: http://sapcild9.web.bc:55000/sourcing/ngservices/rest/query/Z_TEST_WS_QUERY/execute/
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
Following is the code which i have used:
URL url = new URL("http://sapcild9.web.bc:55000/sourcing/ngservices/rest/query/Z_TEST_WS_QUERY/execute/");
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
connection.setRequestProperty("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
connection.setRequestProperty("Content-Length", "" +Integer.toString(urlParameters.getBytes().length));
connection.setRequestProperty("Content-Language", "en-US");
connection.setUseCaches (false);
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setAllowUserInteraction(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.connect();
//Send request
OutputStream out = connection.getOutputStream();
OutputStreamWriter wr= new OutputStreamWriter(out, "UTF-8");
wr.write("EXTERNAL_ID");
wr.write("=");
wr.write(URLEncoder.encode("temp","UTF-8"));
wr.close();
out.close();
is = connection.getInputStream();
isr =new InputStreamReader(is);
BufferedReader bufferReader = new BufferedReader(isr);
String str; StringBuffer stringBuffer = new StringBuffer();
while ((str = bufferReader.readLine()) != null) {
stringBuffer.append(str);
stringBuffer.append("\n");
System.out.println(stringBuffer.toString());
connection.disconnect();
is.close();
Please Advise how to proceed on this isssue?
Thanks in advance.
Srikanth EmaniHi Gael,
your URL is made up of :
[ProcedureName]?[parameter1]=[value1]&[parameter2]=[value2]
creating URLs like this can have problems especially with spaces and punctuation.
the answer is a FORM
the following will create a hidden form :
FORM ACTION="[ProcedureName]" METHOD="POST" name="F1"
INPUT type="HIDDEN" name="[parameter1]" value="[value1]"
INPUT type="HIDDEN" name="[parameter2]" value="[value2]"
/FORM
you can set the values in the form using:
document.F1.[parameter1].value="abc123%%&&$$!";
document.F1.submit();
will submit the form and the PL/SQL procedure should receive the text as it was contained in the form.
the only characters that can now cause problems are :
" as it delimits the field.
' as it may cause problems in PL/SQL.
\ as it is a special character.
Regards Michael
Maybe you are looking for
-
I just need to get text messaging logs, HELP!!! I forgot how and it's extremely important! Thanks!
-
Mac OS X v10.7 Lion How to Tell Which Groups an Address Book Entry Is In?
Under Snow Leopard's address book, I could press the Option key and it would highlight which groups the selected address book entry was in. How do I do that with Lion's address book?
-
Webreporting - Command URL with "2" DataProvider
Hi all, i am using a very long command url: <SAP_BW_URL DATA_PROVIDER='DATAPROVIDER_1' CMD_1='ITEM=TABLE_1&HIDDEN=X' CMD_2='ITEM=TABLE_2&HIDDEN=' CMD_3='ITEM=TABLE_3&HIDDEN=X' CMD_4='ITEM=TABLE_4&HIDDEN=X' CMD_5='ITEM=TABLE_5&HIDDEN=X' CMD_6='ITEM=TA
-
I have a user with an XP Pro machine that Desktop Software 6 has started crashing when you try to load it. The error/exception log is below and I would appreciate any ideas as to where I should look to solve the problem, Thanks! Date|Log Level|Threa
-
Hi, As i am new to JSF..Can anyone suggest me some books for JSF or any websites to learn JSF Thanks.