SQL Query drove me mad !
Dear all,
I'm requesting any advice related to this query I'm stuck with.
this Query is for an assessment (homework)
I got three tables:
Property: Property_id(PK) , Property_Type_id(FK)
Property_Type: Property_Type_id(PK), Type
Viewing: Property_id(PK), Buyer_id(PK)
the question supplied by the tutor is :
List those properties of each type which have the highest number of viewings
arranged.
I managed to get the number of views for each property, grouping them by the type of the property. the bit I'm struggling with is how to show only one property of each type that have the max number of views.
I have the following query made:
select PT.type_description "Type", V.property_id "Property",count(V.property_id) "no. views"
from Viewing V, Property P, Property_Type PT
where V.property_id = P.property_id
and P.prop_type_id = PT.prop_type_id
group by PT.type_description, V.property_id;
when I try to implement the max as in : max(count(V.property_id))
it generates an error.
regards
I came up with this. (Because I don't have your tables, I had to use your original results as the innermost table.)
SQL> select prop_type, prop_no, views
2 from
3 (
4 select prop_type
5 ,prop_no
6 ,views
7 ,dense_rank() over (partition by prop_type order by views desc) dr
8 from
9 (
10 select prop_type
11 ,prop_no
12 ,views
13 from prop_views
14 )
15 )
16 where dr = 1;
PROP_TYPE PROP_NO VIEWS
Detached A0004 2
Semi Detached A0013 3
Semi Detached A0016 3
Terrace A0001 2
Terrace A0002 2
Town House A0007 2
Town House A0010 2
Town House A0020 2
8 rows selected.You can see there are multiple properties within each type with the same maximum number of views.
Do you have any logic for choosing one over the other?
Similar Messages
-
Converting SQL Report Region to PLSQL Function Body Returning SQL Query
All:
I want to convert my SQL Report Region to a PLSQL-generated SQL Report Region so that I can eliminate where clauses dynamically and speed up my app, and also so that I can provide additional sorting options.
<br><br>
My problem is that I have lots of embedded single quotes that already are coded as 3 single quotes in the SQL Report Region. I am not sure at all how to code them within the PLSQL.
<br><br>
As example, here is one column from my query:
<br><br>
select decode(nvl(g.date_sub_1,g.date_rec_1), null, decode(g.article, 0, 'E', 1, 'U'), '< a href="javascript:unElevate( ' ' ' || g.grid || ' ' ',' ' ' || g.natca || ' ' ')">' || decode(g.article, 0, 'E', 1, 'U') || '< /a>') "Reverse" from g_table g
<br><br>
(Note that I added spaces within the code so it would display properly in the browser.)
<br><br>
To clarify, that's a double quote before javascript, and then 3 single quotes before the first concatenation group, then 3 single quotes after the second concatenation group, then 3 single quotes before the third, 3 single quotes after the fourth followed by an end-paren followed by a double quote etc.
<br><br>
My question is, what do I do with these triple-single quotes within PLSQL? Probably a no-brainer for the experienced folks, but I am thinking like a mobius strip at this point.
<br><br>
Bill
Message was edited by:
[email protected]
Message was edited by:
[email protected]
Message was edited by:
[email protected]Scott,
I think that feature was made for my situation! I keep getting
Function returning SQL query: Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the generic columns checkbox below the region source to proceed without parsing.
(ORA-20001: Unable to bind :43 verify length of item is 30 bytes or less. Use v() syntax to reference items longer than 30 bytes. ORA-01006: bind variable does not exist)
I did chop the query up into little bits, i.e.
p_sql := p_sql || q'! ... !';
p_sql := p_sql || q'! ... !';
p_sql := p_sql || q'! ... !';
return p_sql;
But I'm not sure what I'm supposed to do here.
Thank you.
Bill -
SAP Crystal Report (2008) through SQL Query parameters
Hi,
I Created a report in Crystal report (2008) based on Sql Query. I created parameters in SQL query prompt only (all single valued).
Based on this I need to show the data in detail section.
For Graph, I used another SQL query, and added one subreport to the Main report header section. Since this subreport is also using the SQL query prompts for taking parameters.
Since both the reports are using same set of parameters. I mapped Main report parameters to sub-report parameters.
So Now structure is like,
In a report there is one subreport.
Main report ....SQL query generates parameter prompt..same parameters is passed to subreport.
In subreport there are sql generated prompts. and we mapped that prompts to main report parameter prompts.
Now it is running fine from crystal report, but not from CMC. It is not showing the graph.
Made Two Experiment:
1. To check subreport is running or not , Mannualy put my name in sub report--working fine.(CMC)
2. To check the parameters are correctly mapped--printed the value in subreport--Showing all the parameters value from CMC
but it is not running the SQL query of that sub report.
Any suggestion ?? Or is there anyoption to check?? Or a CMC setting.
Please suggest and respond..
Thank you in advance.!!Hi Rajeev,
This is Crystal reports development community, you said the report is working fine in Crystal. it is problem in CMC. So the issue is at BI Server.
So i think you need to create the thread in the below community.
BI Platform
--Naga -
How to Suppress The Output of a SQL Query In Oracle 11gR2
Hi Friends,
I am using oracle version 11.2.0.1, I have set a cronjob which will run on every 15 minutes and give us a log file mentioning the execution time taken for that SQL query:-
For example:
SQL> set timing on;
SQL> SELECT objProp FROM aradmin.arschema WHERE (schemaId = 175);
OBJPROP+
--------------------------------------------------------------------------------+
*6\60006\4\0\\60008\40\0\60009\4\0\\60010\4\0\\60018\4\0\\600*
*22\4\68\1\63\AR:jRL#*
Elapsed: 00:00:00.00
The above query will return the output as well as the time taken for execution of the query. I want to suppress the output of the query and only want the time taken to be printed. Is it possible by set commands. I have marked the output as bold and made it Italic.
Please help me at the earliest.
Regards,
Arijit>
I am using oracle version 11.2.0.1, I have set a cronjob which will run on every 15 minutes and give us a log file mentioning the execution time taken for that SQL query:-
The above query will return the output as well as the time taken for execution of the query. I want to suppress the output of the query and only want the time taken to be printed. Is it possible by set commands. I have marked the output as bold and made it Italic.
>
How would that even be useful?
A query from a tool such as sql*plus is STILL going to send the output to the client and the client. You can keep sql*plus from actually displaying the data by setting autotrace to trace only.
But that TIME TAKEN is still going to include the network time it takes to send ALL rows that the query returns across the network.
That time is NOT the same as the actual execution time of the query. So unless you are trying to determine how long it takes to send the data over the network your 'timing' method is rather flawed.
Why don't you tell us WHAT PROBLEM you are trying to solve so we can help you solve it? -
Not to able add sql query in the item source
Hi,
I am getting this error when i am trying to add the sql query in the item source
ORA-20505: Error in DML: p_rowid=3206911131098131, p_alt_rowid=ID, p_rowid2=, p_alt_rowid2=. ORA-01461: can bind a LONG value only for insert into a LONG column
SELECT
"UCL"
FROM
SELECT
TRUNC((
(SUM("EV FINAL" / 100) / COUNT("Object_Name") )
+
3 *
SQRT
(SUM("EV FINAL" / 100) * SUM("EV FINAL" / 100) ) / COUNT("Object_Name") -
(SUM("EV FINAL" / 100) / COUNT("Object_Name")) * (SUM("EV FINAL" / 100) / COUNT("Object_Name"))
),3) "UCL"
FROM
SELECT
Pro.Project_Name "Project Name",
POBJ.NAME "Object_Name",
TRUNC((
( ( NVL(AEV."Total Actual",0) - (NVL( (NVL( (MAX(X."Incoming-Doc") / 100),0) * NVL(ID."INCOMMING_DOC",0) ) ,0 ) +
NVL( (NVL( (MAX(X."Design") / 100),0) * NVL(D."DESIGN",0) ), 0 ) +
NVL( (NVL( (MAX(X."Build") / 100) ,0) * NVL(B."BUILD",0) ),0 ) +
NVL( (NVL( (MAX(X."Testing") / 100),0) * NVL(T."TESTING",0) ),0 ) +
NVL( (NVL( (MAX(X."Release") / 100),0) * NVL(R."RELEASE",0) ),0 ) ) )
DECODE(
(NVL( (NVL( (MAX(X."Incoming-Doc") / 100),0) * NVL(ID."INCOMMING_DOC",0) ) ,0 ) +
NVL( (NVL( (MAX(X."Design") / 100),0) * NVL(D."DESIGN",0) ), 0 ) +
NVL( (NVL( (MAX(X."Build") / 100) ,0) * NVL(B."BUILD",0) ),0 ) +
NVL( (NVL( (MAX(X."Testing") / 100),0) * NVL(T."TESTING",0) ),0 ) +
NVL( (NVL( (MAX(X."Release") / 100),0) * NVL(R."RELEASE",0) ),0 ) ),0,NULL,
(NVL( (NVL( (MAX(X."Incoming-Doc") / 100),0) * NVL(ID."INCOMMING_DOC",0) ) ,0 ) +
NVL( (NVL( (MAX(X."Design") / 100),0) * NVL(D."DESIGN",0) ), 0 ) +
NVL( (NVL( (MAX(X."Build") / 100) ,0) * NVL(B."BUILD",0) ),0 ) +
NVL( (NVL( (MAX(X."Testing") / 100),0) * NVL(T."TESTING",0) ),0 ) +
NVL( (NVL( (MAX(X."Release") / 100),0) * NVL(R."RELEASE",0) ),0 ) ) ) ) * 100),2)
|| '%' "EV_INITIAL",
TRUNC((
( (NVL(AEV."Total Actual",0) - ( NVL( (NVL( (MAX(X."Incoming-Doc") / 100),0) * NVL(IDR."INCOMMING_DOC_REPLAN",0) ),0) +
NVL( (NVL( (MAX(X."Design") / 100),0) * NVL(DR."DESIGN_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Build")/100),0) * NVL(BR."BUILD_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Testing") / 100),0) * NVL(TR."TESTING_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Release")/100),0) * NVL(RR."RELEASE_REPLAN",0)),0) ) )
DECODE(
( NVL( (NVL( (MAX(X."Incoming-Doc") / 100),0) * NVL(IDR."INCOMMING_DOC_REPLAN",0) ),0) +
NVL( (NVL( (MAX(X."Design") / 100),0) * NVL(DR."DESIGN_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Build")/100),0) * NVL(BR."BUILD_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Testing") / 100),0) * NVL(TR."TESTING_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Release")/100),0) * NVL(RR."RELEASE_REPLAN",0)),0) ) ,0,NULL,
( NVL( (NVL( (MAX(X."Incoming-Doc") / 100),0) * NVL(IDR."INCOMMING_DOC_REPLAN",0) ),0) +
NVL( (NVL( (MAX(X."Design") / 100),0) * NVL(DR."DESIGN_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Build")/100),0) * NVL(BR."BUILD_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Testing") / 100),0) * NVL(TR."TESTING_REPLAN",0)),0) +
NVL( (NVL( (MAX(X."Release")/100),0) * NVL(RR."RELEASE_REPLAN",0)),0) ) ) ) * 100),2) "EV FINAL",
TRUNC(BRV."RSV",2) "Revised SV"
FROM
PROJECTS PRO,
PROJECT_OBJECTS POBJ,
INITIAL_EFFORT IE,
SCHEDULE_VARIANCES SV,
INITIAL_EFFORT_VIEW IEV,
INCOMMING_DOC ID,
DESIGN D,
BUILD B,
TESTING T,
RELEASE R,
INCOMMING_DOC_REPLAN IDR,
DESIGN_REPLAN DR,
BUILD_REPLAN BR,
TESTING_REPLAN TR,
RELEASE_REPLAN RR,
ACTUAL_EFFORT_VIEW AEV,
REPLAN_INITIAL_EFFORT_VIEW RIEV,
BSV_RSV_VIEW BRV,
SELECT
distinct
pro.project_name "Project Name",
pobj.name "Object Name",
PRO.ID "PRO_ID",
POBJ.ID "POBJ_ID",
CASE
WHEN
ts.status in ('CLOSE','CLOSED','Closed') AND
tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review') THEN
TO_CHAR('100')
WHEN
upper(ts.status) like upper('ACCEPTED') AND
tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review') THEN
TO_CHAR('75')
WHEN
ts.status IN ('RIP','WIP','REJECTED','Rejected') AND
tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review') THEN
TO_CHAR('50')
WHEN
POBJ.ID IN (SELECT POBJ.ID FROM projects pro,project_objects pobj,task tsk,skip_phase sp,employees
emp,employee_project_pairs epp
WHERE pobj.pro_id = pro.id and epp.pro_id = pro.id AND sp.tas_id = tsk.id and
pobj.id = sp.OBJ_ID and pro.id = sp.pro_id
and tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review')
AND PRO.ID = :p2_projects ) THEN
TO_CHAR('100')
END "Incoming-Doc",
CASE
WHEN
ts.status in ('CLOSE','CLOSED','Closed') AND
tsk.name in ('Design Review','Design - Review','TDD - Review') THEN
TO_CHAR('100')
WHEN
UPPER(ts.status) LIKE UPPER('ACCEPTED') AND
tsk.name in ('Design Review','Design - Review','TDD - Review') THEN
TO_CHAR('75')
WHEN
ts.status IN ('RIP','WIP','REJECTED','Rejected') AND
tsk.name in ('Design Review','Design - Review','TDD - Review')
THEN
TO_CHAR('50')
WHEN
POBJ.ID IN (SELECT POBJ.ID FROM projects pro,project_objects pobj,task tsk,skip_phase sp,employees
emp,employee_project_pairs epp
WHERE pobj.pro_id = pro.id and epp.pro_id = pro.id AND sp.tas_id = tsk.id and
pobj.id = sp.OBJ_ID and pro.id = sp.pro_id
and tsk.name in ('Design Review','Design - Review','TDD - Review')
AND PRO.ID = :p2_projects ) THEN
TO_CHAR('100')
END "Design",
CASE
WHEN
ts.status in ('CLOSE','CLOSED','Closed') AND
tsk.name in ('Build Review','Build - Review','Code - Review','Code') THEN
TO_CHAR('100')
WHEN
UPPER(ts.status) LIKE UPPER('ACCEPTED') AND
tsk.name in ('Build Review','Build - Review','Code - Review','Code') THEN
TO_CHAR('75')
WHEN
ts.status IN ('RIP','WIP','REJECTED','Rejected') AND
tsk.name in ('Build Review','Build - Review','Code - Review','Code') THEN
TO_CHAR('50')
WHEN
POBJ.ID IN (SELECT POBJ.ID FROM projects pro,project_objects pobj,task tsk,skip_phase sp,employees
emp,employee_project_pairs epp
WHERE pobj.pro_id = pro.id and epp.pro_id = pro.id AND sp.tas_id = tsk.id and
pobj.id = sp.OBJ_ID and pro.id = sp.pro_id
and tsk.name in ('Build Review','Build - Review','Code - Review','Code')
AND PRO.ID = :p2_projects ) THEN
TO_CHAR('100')
END "Build",
CASE
WHEN
ts.status in ('CLOSE','CLOSED','Closed') AND
tsk.name in ('Test Result Review','Test Result - Review','UTR - Review') THEN
TO_CHAR('100')
WHEN
UPPER(ts.status) LIKE UPPER('ACCEPTED') AND
tsk.name in ('Test Result Review','Test Result - Review','UTR - Review') THEN
TO_CHAR('75')
WHEN
ts.status IN ('RIP','WIP','REJECTED','Rejected') AND
tsk.name in ('Test Result Review','Test Result - Review','UTR - Review') THEN
TO_CHAR('50')
WHEN
POBJ.ID IN (SELECT POBJ.ID FROM projects pro,project_objects pobj,task tsk,skip_phase sp,employees
emp,employee_project_pairs epp
WHERE pobj.pro_id = pro.id and epp.pro_id = pro.id AND sp.tas_id = tsk.id and
pobj.id = sp.OBJ_ID and pro.id = sp.pro_id
and tsk.name in ('Test Result Review','Test Result - Review','UTR - Review')
AND PRO.ID = :p2_projects ) THEN
TO_CHAR('100')
END "Testing",
CASE
WHEN
ts.status in ('CLOSE','CLOSED','Closed') AND
tsk.name in ('Release-Review','Release - Verification',
'Migration & Release - Review') THEN
TO_CHAR('100')
WHEN
UPPER(ts.status) LIKE UPPER('ACCEPTED') AND
tsk.name in ('Release-Review','Release - Verification',
'Migration & Release - Review') THEN
TO_CHAR('75')
WHEN
ts.status IN ('RIP','WIP','REJECTED','Rejected') AND
tsk.name in ('Release-Review','Release - Verification','Migration & Release - Review') THEN
TO_CHAR('50')
WHEN
POBJ.ID IN (SELECT POBJ.ID FROM projects pro,project_objects pobj,task tsk,skip_phase sp,employees
emp,employee_project_pairs epp
WHERE pobj.pro_id = pro.id and epp.pro_id = pro.id AND sp.tas_id = tsk.id and
pobj.id = sp.OBJ_ID and pro.id = sp.pro_id
and tsk.name in ('Release-Review','Release - Verification','Migration & Release - Review' )
AND PRO.ID = :p2_projects ) THEN
TO_CHAR('100')
END "Release"
FROM
task_status ts,projects pro,project_objects pobj,task tsk
,employees emp,employee_project_pairs epp,REVIEW_ITEMS RI
WHERE
pobj.pro_id = pro.id
and pro.id = ts.pro_id
and pobj.id = ts.pro_obj_id
and tsk.id = ts.task_id
and emp.id = epp.emp_id
and epp.pro_id = pro.id
and ts.id = ri.ts_id
AND PRO.ID = :p2_projects
and tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review','Design Review','Design - Review','TDD - Review',
'Build Review','Build - Review','Code - Review','Code',
'Test Result Review','Test Result - Review','UTR - Review',
'Release-Review','Release - Verification','Migration & Release - Review')
and ri.open_timestamp in
SELECT
distinct
max(ri.open_timestamp)
FROM
task_status ts,projects pro,project_objects pobj,task tsk
,employees emp,employee_project_pairs epp,REVIEW_ITEMS RI
WHERE
pobj.pro_id = pro.id
and pro.id = ts.pro_id
and pobj.id = ts.pro_obj_id
and tsk.id = ts.task_id
and emp.id = epp.emp_id
and epp.pro_id = pro.id
and ts.id = ri.ts_id
and tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review','Design Review','Design - Review','TDD - Review',
'Build Review','Build - Review','Code - Review','Code',
'Test Result Review','Test Result - Review','UTR - Review',
'Release-Review','Release - Verification','Migration & Release - Review')
AND PRO.ID = :p2_projects
GROUP BY POBJ.NAME,TSK.NAME )
UNION
select
distinct
pro.project_name "Project Name",
pobj.name "Object Name",
PRO.ID "PRO_ID",
POBJ.ID "POBJ_ID",
case
when
tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review') THEN
TO_CHAR('100')
end "Incoming-Doc",
case
when
tsk.name in ('Design Review','Design - Review','TDD - Review') THEN
TO_CHAR('100')
end "Design",
case
when
tsk.name in ('Build Review','Build - Review','Code - Review','Code') THEN
TO_CHAR('100')
end "Build",
case
when
tsk.name in ('Test Result Review','Test Result - Review','UTR - Review') THEN
TO_CHAR('100')
end "Testing",
case
when
tsk.name in ('Release-Review','Release - Verification',
'Migration & Release - Review') THEN
TO_CHAR('100')
end "Release"
FROM
projects pro
,project_objects pobj
,task tsk
,skip_phase sp
,employees emp
,employee_project_pairs epp
WHERE
pobj.pro_id = pro.id
and epp.pro_id = pro.id
AND sp.tas_id = tsk.id
and pobj.id = sp.OBJ_ID
and pro.id = sp.pro_id
and tsk.name in ('Incomming-Doc Review','Incoming Doc- Review',
'Incoming Doc- Review','FDD - Review','Design Review','Design - Review',
'TDD - Review','Build Review','Build - Review','Code - Review','Code',
'Test Result Review','Test Result - Review','UTR - Review',
'Release-Review','Release - Verification','Migration & Release - Review')
and pro.id = :p2_projects ) X
WHERE
PRO.ID = POBJ.PRO_ID AND
PRO.ID = IE.PROJECT_NAME AND
UPPER(POBJ.NAME) = UPPER(IE.OBJECT_NAME) AND
PRO.ID = SV.PROJECT_NAME AND
UPPER(POBJ.NAME) = UPPER(SV.OBJECT_NAME) AND
PRO.ID = :p2_projects
AND PRO.ID = X."PRO_ID"
AND POBJ.ID = X."POBJ_ID"(+)
AND PRO.ID = IEV."PRO_ID"
AND POBJ.ID = IEV."POBJ_ID"
AND PRO.ID = ID."PRO_ID"
AND POBJ.ID = ID."POBJ_ID"
AND PRO.ID = D."PRO_ID"
AND POBJ.ID = D."POBJ_ID"
AND PRO.ID = B."PRO_ID"
AND POBJ.ID = B."POBJ_ID"
AND PRO.ID = T."PRO_ID"
AND POBJ.ID = T."POBJ_ID"
AND PRO.ID = R."PRO_ID"
AND POBJ.ID = R."POBJ_ID"
AND PRO.ID = IDR."PRO_ID"
AND POBJ.ID = IDR."POBJ_ID"
AND PRO.ID = DR."PRO_ID"
AND POBJ.ID = DR."POBJ_ID"
AND PRO.ID = BR."PRO_ID"
AND POBJ.ID = BR."POBJ_ID"
AND PRO.ID = TR."PRO_ID"
AND POBJ.ID = TR."POBJ_ID"
AND PRO.ID = RR."PRO_ID"
AND POBJ.ID = RR."POBJ_ID"
AND PRO.ID = AEV."PRO_ID"
AND POBJ.ID = AEV."POBJ_ID"
AND PRO.ID = RIEV."PRO_ID"
AND POBJ.ID = RIEV."POBJ_ID"
AND PRO.ID = BRV."PRO_ID"
AND POBJ.ID = BRV."POBJ_ID"
group by
PRO.PROJECT_NAME,
POBJ.NAME,
SV.status,
sv.comments,
ID."INCOMMING_DOC",D."DESIGN",B."BUILD",T."TESTING",R."RELEASE",
IDR."INCOMMING_DOC_REPLAN",DR."DESIGN_REPLAN",BR."BUILD_REPLAN",TR."TESTING_REPLAN",RR."RELEASE_REPLAN",
AEV."Total Actual",IEV."Total Plan",RIEV."Total Plan",
BRV."BSV",BRV."RSV",POBJ.Complexity,POBJ.PROGRAM_TYPE,pro.id,pobj.id,BRV."Status"
wht is the mistake i am doing here please suggets
thanks
SudhirCan you just setup an Excel/Essbase retrieval to get the data you need? You can't use SQL to query Essbase; here is a blog post that talks about it:
http://timtows-hyperion-blog.blogspot.com/2008/01/why-you-cant-use-sql-to-query-essbase.html
Since I made that post, I have found out that Essbase has now been integrated into the latest version of the Oracle BI Server and, technically, you could use SQL to query the data in Essbase via the Oracle BI Server if you have the right version.
Tim Tow
Applied OLAP, Inc -
Passing an argument in the SQL Query of a View Object
Hi,
It is possible that this question has been asked before, however I have searched for a half an hour in the forums and couldn't find a solution.
I am also new to using JDeveloper and ADF. Here's the situation:
I am developing an application that doesn't have to do anything else then displaying data from a database. Pretty straightforward actually.
Now I have made a vew pages with several collapsible panels (af:showDetailHeader) and have setup the datasources (or so I thought).
All that remains is:
- drag & drop a view object, from the application module that I created, onto the collabsible panels, so a child element gets created which displays data from the database.
- hack the layout so it looks like I want it to.
The problem that I have is the following:
I am using a 'User'-class that contains values I need when quering the database.
That User-object is part of a user-session.
What I want, for example, is to use the 'getPersonId()' function of that User-object and pass the argument to a SQL-query of a certain view-object.
The query would become something like:
'SELECT * FROM people WHERE people.personId = :someNumber'.
Now I've read some stuff about variable binding, which is complemented by something like (backing bean code):
getDBTransaction().getRootApplicationModule().getACertainViewObject().setWhereClauseParameter(1, user.getPersonId());
The examples I have found that might match my wishes are not using business components, but EJB's. I am having difficulty with understanding the 'how'-part of variable binding.
Also, I do not know enough of ADF to be able to create a situation like:
'User loads page, collapsible panel 1 is fully shown, the others are undisclosed.'
(meaning, that for panel1 a query has been executed.)
'User clicks on collapsible panel 2 which triggers a backingbean that somehow retrieves data from a view object'.
I would appreciate any help that somebody can give.
If it is not too much of a problem, please provide code snippets in case you have a solution. I am new to ADF :(.
-edit
I am using JDeveloper 10.1.3.3.0 in case that is of any importance.
Message was edited by:
Hugo BoogHello Stijn,
I didn't think about a referenced bean rule in the faces-config.
I added it right away and I am now able to set parameters of a View-object, not using a page button and before the page loads. You made my day!
In case anyone ever reads this post again, the summary of how to generate a table based on a View-object using dynamic parameters.:
1a: Go to faces-config.xml -> Overview tab'
1b: Go to the menuitem "Referenced Beans"
1c: Click on 'new' and select the existing bean you want to access data from and input a name. In this example I use name="user"
2: Create a View-object using the wizard.
2a: Specify the query you want in the menuitem 'SQL Statement'.
Add the 'parameters' you want to. You will have something like:
"SELECT * FROM someTable WHERE table.columnname LIKE :someArgument".
- hint: if you want the result to become something like:
"SELECT * FROM someTable WHERE table.columnname LIKE '%someArgument%'" then you have to add the '%'-characters in your code itself (read: someClass.setParameter("%" + someArgument);).
2b: In the menuitem 'Bind Variables' you have to add the variables you are referring to in the query. If you look at the query in 2a, then you have to add a variable with name "someArgument".
2c: Add the View-object to a Application Module (create one if nessecairy).
3a: Open a .jsp(x) file. Drag the View-object created in step 2 from the 'Data Controls'-pane to the page.
3b: Click on the '+' of the View-object in the 'Data Controls'-pane and open 'Operations' and drag 'ExecuteWithParams' to your page as a button.
3c: We do not want to use a button, the action has to be executed immediatly. So In the page source remove the lines that were created after dropping 'ExecuteWithParams'.
3d: Right-click on the page and select "Go to Page Definition".
3e: Go to the action id that is called 'ExecuteWithParams#', where # is a number.
Change the id to something useful.
3f: Change the NDValue so it corresponds with the value you want.
Example:
<action id="getAddressData" IterBinding="AddressesView1Iterator"
InstanceName="MyHRServiceModuleDataControl.AddressView1"
DataControl="MyHRServiceModuleDataControl" RequiresUpdateModel="true" Action="95">
<NamedData NDName="someArgument" NDType="java.lang.String"
NDValue="#{user.personId}"/>
</action>
Note: It is possible to use the value of a Backing Bean in NDValue.
Note 2: user is the bean I referred to in the faces-config.xml!
3g: Under the executables item, add an 'invokeAction' to pass the parameter to the View-object before your JSP-file loads:
<executables>
<invokeAction Binds="getAddressData"
id="loadAddressDataOfPersonIdInSession"
Refresh="prepareModel"/>
Thank Stijn Haus for this :) -
SQL Query returns values like "---" and "NA"
Hi
When I execute a sql query in MII it returns values like "---" and "NA" for empty Char and numeric fields respectively.
I have checked the database and made sure that these fields does not have any value. This happens only when I run the query through MII. Can any one know how can we get rid of these values?
Thanks in advance
ShajiShaji,
MII sets those values as a default if it discovers null values in a query result. You can change this default behaviour in several ways.
First, have a look at the document [Setting custom null values in XML|http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/70628af0-8ec4-2c10-7da2-f451e412dd8f?quicklink=index&overridelayout=true]. Then you may also use SQL functions like [NVL|http://www.techonthenet.com/oracle/functions/nvl.php] to change the value directly in the SQL query. You can also change the value inside the MII BLT to whatever you need.
Michael -
Form on a SQL Query - doesn't work with SELECT * - bug or feature ?
When I do this,
Create Page -> Page with Component -> Form -> Form on a SQL Query -> SELECT * FROM EMP
I do not get any items displayed and it creates a simple HTML region / page. Do we have to necessarily specify the column names ?
Iam looking at a way to see if any addition of columns in the table does not involve IT intervention in recreating the form.
When we try to create with Form on a SQL Query, then shouldn't it be similar to the Report where the same thing works, if I give SELECT function_returning_columns() from DUAL even then the same thing happens where it creates an ITEM called functions_returning_columns() it creates HTML region
I asked a related question with no answer :-( in
Dynamic Creation of Items in Runtime through Application UIHi Marc,
Thanks. I just tried something like this. Taking the EMP table example, (it doesn't matter which table), I created a region based on a Pl/Sql function returning SQL query
( I selected the vertical report template including nulls to display it like a form ) :
DECLARE
v_sql VARCHAR2(3000) ;
mn_idx NUMBER := 1 ;
BEGIN
v_sql := 'SELECT ' ;
FOR recs IN (SELECT * FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = 'EMP' ORDER BY COLUMN_ID)
LOOP
v_sql := v_sql || 'HTMLDB_ITEM.TEXT(' || mn_idx || ',' ||
recs.column_name || ') ' || recs.column_name || ', ' ;
mn_idx := mn_idx + 1 ;
END LOOP ;
v_sql := SUBSTR(v_sql, 1, LENGTH(v_sql) -2) ;
v_sql := v_sql || ' FROM EMP WHERE EMPNO = 7369 ORDER BY 1 ' ;
RETURN v_sql ;
END ;
This allowed me to do my updates etc.., Then I created a button called 'Apply' and a process called 'update_changes' on button click and defined this:
DECLARE
v_sql varchar2(1000) ;
mn_ctr NUMBER := 1 ;
BEGIN
v_sql := 'BEGIN UPDATE EMP SET ' ;
FOR recs IN (select COLUMN_ID, COLUMN_NAME, DATA_TYPE
from all_tab_columns where table_name = 'EMP'
ORDER BY COLUMN_ID) loop
-- Make changes here if required- this is assuming 9 columns --
v_sql := v_sql || recs.column_name || ' = HTMLDB_APPLICATION.G_F0' || mn_ctr || '(1),' ;
mn_ctr := mn_ctr + 1;
end loop ;
v_sql := substr(v_sql, 1, length(v_sql) - 1) ;
v_sql := v_sql || ' WHERE EMPNO = 7369; END ;' ;
execute immediate (v_sql) ;
END ;
Since this is for example, I didn't include code for Checksum and hardcoded empno = condition and have provision for 9 columns. I made some changes and tried saving it and I was able to do it.
I altered the table to add a column / drop a column and when I relogin, Iam able to see the changes.
Can you tell me if there could be any drawbacks in this approach ?. -
Sql query to seperate character and number data in a column
Hi,
We have a test table on 10.2.0.4 db as below;
10:44:34 TEST:WAULT > desc t;
Name Null? Type
EMP VARCHAR2(10)
10:43:18 TEST:WAULT > select * from t;
EMP
JOHN
7281
TOM
7852145
BNPPARIBAS
9862354
Mindcraft
875
INFINITY
78998775
01234
EMP
0
-123
-856359
SCOTT
-657
16 rows selected.
The question is; we need to segregate the character data and numerical data in the EMP field, using sql query.
Plz suggest as to how we can achieve this.
Also, plz suggest how the use of reqexp can be made in this to achieve the same.
Thanks,
Rahul>
Hi,
EMP
JOHN
7281
TOM
7852145
The question is; we need to segregate the character data and numerical data in the EMP field, using sql query.
Plz suggest as to how we can achieve this.Check out the CAST function
http://download.oracle.com/docs/cd/B12037_01/server.101/b10759/functions015.htm
However, I would have to ask why on earth you're doing this - it would, IMHO, be
much better to redesign your app. It looks like you have an EAV problem
(AKA MUCK or OTLT) Google Joe Celko and these terms.
Paul...
Rahul -
Hi Team,
I want to fire one sql query to retrive some data. I cant make VO of that query as its from many DB link.
Query is like SELECT query.
Can anyone suggest me
My Jdev :- 11.1.1.6.0
Thanks In Advance
RamitI mean to say that the query is made by one or more than one schema .
something like this:-
Select hcsua.location , msib.description,
hl.address1,hl.address2,hl.city,hl.state, hl.postal_code,hl.country, xmnd.part_number
from hz_party_sites hps, hz_cust_acct_sites_all hcasa, hz_cust_site_uses_all hcsua, hz_locations hl, xxnin_moca_nmi_display xmnd, mtl_system_items_b msib
Where hps.party_id = 176220
And hps.party_site_id=hcasa.party_site_id
And hcasa.cust_acct_site_id=hcsua.cust_acct_site_id
And hcsua.site_use_code='SHIP_TO'
And hps.location_id=hl.location_id
and hcsua.location=xmnd.location_acct_num
and msib.segment1=xmnd.part_number;
when I am making SQL VO then its saying cant make attribute of this query.
Please guide me on this. -
SQL Query (pl/sql function body returning Sql query)
Hi All,
I have created a region of "SQL Query (pl/sql function body returning Sql query)" type and it is working fine , but when I am migrating(export /import) this application from development to systest environment ,
It gives error for this region :
Error ERR-1101 Unable to process function body returning query.
OK
ORA-06550: line 1, column 52: PLS-00306: wrong number or types of arguments in call to 'FU_TRADE_REPORT_QUERY' ORA-06550: line 1, column 45: PL/SQL: Statement ignored
Any pointer ...why this is happening.
Thanks
DikshitIf your function is a stored function that is called from within APEX (function body not coded into the app itself), have you made sure that the function has been created and compiles ok prior to installing your apex app.
If there are some dependency issues between other PL/SQL units or database objects that are causing your function not to be compiled, you apex install will fail as you are trying to reference an uncompelled bit of pl/sql.
Let me know how you get on
Regards
Duncan -
SQL Query (PL/SQL Function Body returning SQL query) doesn't return any row
I have a region with the following type:
SQL Query (PL/SQL Function Body returning SQL query).
In a search screen the users can enter different numbers, separated by an ENTER.
I want to check these numbers by replacing the ENTER, which is CHR(13) || CHR(10) I believe, with commas. And then I can use it like this: POD IN (<<text>>).
It's something like this:
If (:P30_POD Is Not Null) Then
v_where := v_where || v_condition || 'POD IN (''''''''||REPLACE(''' || :P30_POD || ''', CHR(13) || CHR(10), '','')||'''''''''')';
v_condition := ' AND ';
End If;
But the query doesn't return any rows.
I tried to reproduce it in Toad:
select * from asx_worklistitem
where
POD IN (''''||REPLACE('541449200000171813'||CHR(13) || CHR(10)||'541449206006341366', CHR(13) || CHR(10), ''',''')||'''')
==> This is the query that does't return any rows
select (''''||REPLACE('541449200000171813'||CHR(13) || CHR(10)||'541449206006341366', CHR(13) || CHR(10), ''',''')||'''')
from dual;
==> This returns '541449200000171813','541449206006341366'
select * from asx_worklistitem
where pod in ('541449200000171813','541449206006341366');
==> and when I copy/paste this in the above query, it does return my rows.
So why does my first query doesn't work?
Doe anyone have any idea?
Kind regards,
Geert
Message was edited by:
ZorryThanks for the help.
I made it work, but via the following code:
If (:P30_POD Is Not Null) Then
v_pods := REPLACE(:P30_POD, CHR(13) || CHR(10));
v_where := v_where || v_condition || 'POD IN (';
v_counter := 1;
WHILE (v_counter < LENGTH(v_pods)) LOOP
v_pod := SUBSTR(v_pods, v_counter, 18);
IF (v_counter <> 1) THEN
v_where := v_where || ',';
END IF;
v_where := v_where || '''' || v_pod || '''';
v_counter := v_counter + 18;
END LOOP;
v_where := v_where || ')';
v_condition := ' AND ';
End If;But now I want to make an update of all the records that correspond to this search criteria. I can give in a status via a dropdownlist and that I want to update all the records that correspond to one of these POD's with that status.
For a region you can build an SQL query via PL/SQL, but for a process you only have a PL/SQL block. Is the only way to update all these records by making a loop and make an update for every POD that is specified.
Because I think this will have a lot of overhead.
I would like to make something like a multi row update in an updateable report, but I want to specify the status from somewhere else. Is this possible? -
Hi Forum
i made an application which run on JRun server.
In many of my jsps i used sql query like this:
" select id, name, rollno from student where add = 'jj';"
and retrieve the record from resultset like this:
rs.getString("id");
rs.getString("name");
rs.getString("rollno");
I got no error.
BUT WHEN I RETRIEVE THE RECORDS LIKE THIS
rs.getString("name");
rs.getString("id");
rs.getString("rollno");
i got the error:
java.sql.SQLException: [Oracle][ODBC]Invalid column number <1>.
I can not understand what is the problem ?
all the datatypes are correct.
all coding is correct.
and everything is correct.
pls help me & suggest a solution.
is there any problem of jdbc API OR of JRUN SERVER SETTINGS?
thanks
mail me at [email protected]
Arvind GoelI would advise against ever using SELECT * - the order of the columns is undetermined so you're bound to hit this problem sooner or later. Besides, it assumes the column names and you know what happens when you assume things...
I would recommend retrieving only the columns you need, in the order you want them and to call ResultSet.getXXX for each of the columns, in order. -
Ajax Autocomplete Tabular does not work using apex_item.text in SQL Query.
Hello,
Is it possible to use the search function which is used in, Dennis Kubicek example, ENAME topic Ajax Autocomplete Tabular
in a sql query using apex_items?
Query line :
, apex_item.text(17,xp.part_nr,null,null,'onfocus="f_register(this);" autocomplete="off"') PART
At first I followed the example by adding 'onfocus="f_register(this);" autocomplete="off" in the element attributes in the report field.
This didn't work... so tried to add the it in the attirbutes parameter of the apex_item.
But this still doesn't work. No errors are given, it does not respond.
Could somebody please help me?
Thx!
AstridWell, I'm trying to take this one step further, but I seem to be having some difficulty.
I'm trying to make a Filter screen to create a dynamic where clause filter screen.
This is a page I made with Popup LOVS, just to show you my goal (now trying to use autofilters)
http://apex.oracle.com/pls/otn/f?p=29989:5
I have a table on my system that tells you where the field is, and I'm using that to get the table (didn't want to change the javascript, so I pass in a static value).
This is the javascript code I used
<pre>
<script language="JavaScript" type="text/javascript">
function f_register(p_this,p_name)
var p_registered = $x('P5_ITEM_ID').value;
var p_this_name = $x(p_this).id;
//alert(p_this_name);
if (p_registered != p_this_name)
register(p_this_name, "COSTING_M", p_name, "blue", "red");
$x('P5_ITEM_ID').value = p_this_name;
</script>
</pre>
This is my query
<pre>
select column_name || apex_item.hidden(1,column_name) Col_name,
apex_item.SELECT_LIST_FROM_lov(2,'=','OPERATOR') OPERATOR,
apex_item.text (3,
NULL,
20,
200,
'onfocus="f_register(this,''' || column_name || ''');" autocomplete="off"',
'f3_' || '#ROWNUM#',
NULL
) value,column_id
from user_tab_cols
where table_name = 'COSTING_M'
ORDER BY ROWNUM
</pre>
and here is my on-demand process
<pre>
declare
TYPE CurTyp IS REF CURSOR;
v_row varchar2(4000);
rec CurTyp;
V_TABLENAME NKW.UTFIELD_M.TABLE_NAME%TYPE;
begin
BEGIN
SELECT TABLENAME INTO V_TABLENAME
FROM NKW.UTFIELD_M
WHERE FIELD_NAME = :TF_SL_COLUMN;
EXCEPTION WHEN NO_DATA_FOUND THEN RETURN; END;
:TF_SL_SEARCH := replace(:TF_SL_SEARCH, '&','&');
:TF_SL_SEARCH := replace(:TF_SL_SEARCH, '<','<');
:TF_SL_SEARCH := replace(:TF_SL_SEARCH, '>','>');
:TF_SL_SEARCH := replace(:TF_SL_SEARCH, '"','"');
owa_util.mime_header('text/xml', FALSE);
htp.p('Cache-Control: no-cache');
htp.p('Pragma: no-cache');
owa_util.http_header_close;
htp.prn('<rowset>');
open rec for
'select distinct ' || :TF_SL_COLUMN || ' ' ||
'from NKW.' || V_TABLE_NAME || ' ' ||
'where '||:TF_SL_COLUMN||' like :1||''%'' ' ||
'and rownum < 100 ' ||
'order by '||:TF_SL_COLUMN
using :TF_SL_SEARCH;
loop
fetch rec into v_row;
exit when rec%NOTFOUND;
htp.prn('<row>' || htf.escape_sc(v_row) || '</row>');
end loop;
htp.prn('</rowset>');
end;
</PRE>
I made some slight mods to make the table dynamic from my source table (this is to grab master files when they exist and not to when they don't).
I get my select list, but it's blank on all fields, any suggestions?
thanks,
Scott -
The SQL query is not executing
Hi
I have the following situation: In a project we designed our reports calling a stored procedure the exits in a MS SQL Server 200 database. The Stored Procedures works fine and when they are used in the report everything works perfectly.
The reports are being made with CR DEsigner 11, when the designer ends them, ha pass them to me and we put them in our java web application. I open them and even preview them since the Crystal Reprots Perspective of Eclipse and I can see the data, so everything to this point is OK.
The problem comes when I change of connection, I'm trying to connect every report to the same host and database, and when the reprot is displayed in the browser there is no data. I profile the SQL commands that are executed when the report is requested and I found that the reprot is not executing the stored procedure.
I guess because i'm connectring the report to the same database and host that was used when the report is created and i'm also passing exactly the same parameters of the stored procedure, then report thinks that it doesn't have executing again becuase it will be the same information.
SO, i wonder if there is a way to request to the report to execute the sql query every time i have to display it.
thanks for any help.What happens when you try to view the report using a simple viewer.jsp?without changing the connection?
2009-05-25 14:06:09,250 ERROR com.businessobjects.reports.sdk.JRCCommunicationAdapter - detected an exception: Error de conexión: [SQLServer 2000 Driver for JDBC]Error establishing socket.
But the database server is ok, so i think the rpt needs more information to be connect to the database.
Also what happens if you dont use the data bean and give everything there only?
The same, the rpt is not executing the stored procedure.
Did anything change on the RDBMS side? Additional packages, changes to the schema, ownership, etc?
No, the server is ok and the database is ok.
If you configure Log4J logging to DEBUG, you should see the database invokes from the Crystal Java engine, specifically the queries sent and the number of rowsets returned. Do you notice any errors?
I have a problem here with log4j. In my project i'm using spring and with the help of spring i configure log4j, basically with spring is easier to configure log4j.
I'm telling you this because i have log4j working but when my application reaches the code to change the connection to the rerport, log4j dies and stop sending any message to the stdout or to a log file. I haven't since this behavior in any other app o library. So i want to guess i have something wrong with my log4j or maybe with log4j+spring.
So, i remove all the code of spring referring to log4j, but the problem with log4j wasn't solved.
What i will try now is to remove spring from the project.
This is my log4j.properties:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
Maybe you are looking for
-
How do I combine my three apple id's into one account, purchases?
How do I combine my three apple id's into one account, purchases? These apple id's used different email accounts. I would like to close down the two other apple id's and use only my iCloud account.
-
Error Msg: Express Document 'Update was Terminated' in VF02 t-code
Hi all, When I click on save in VF02 transaction I am getting message that ' Express Document 'Update was Terminated' received from author 'XYZ'. After saving when I am seeing in header -output the output type not appearing. Please Help me Its an ur
-
I'm using more than 20 functions from a .dll code to Labview and have in some of then the 1097 error. Error 1097 occurred at Call Library Function Node Possible reason(s): LabVIEW: An exception occurred within the external code called by a Call Libr
-
Premiere Pro CC 7.1, rMBP, no CUDA
retina MacBook Pro 10,1 OSX 10.8.5 2.7 GHz Intel Core i7 16gb ram NVIDIA GeForce GT650M 1024mb CUDA Driver 5.5.28 GPU Driver 8.16.74 Premiere Pro CC 7.1 I've already consulted this blog on the matter: http://blogs.adobe.com/kevinmonahan/2013/09/13/en
-
IMessage Constantly Asking for iCloud Password - Mavericks
Hi, I've been having issues for quite some time now with my iMessage on my MacBook 2010. I started having issues with Mountain Lion where I was unable to sign in. After updating to Mavericks upon release I ran into issues where iMessage constantly