How to set dynamic IN clause in VO Query
Hi ADFExperts,
I have a requirement like I have a viewObject
Let say "Select * from contact" Result of this query is 20 lakhs records
My Requirement,
I have to apply "IN" clause in that view object so It will bring only required row.
E.g Select * from contact where First_name IN : bindName;
In bindName param of string type I am passing "('James','John')"
and I am executing VO.
But it is not returning the result.
Please help.
Oracle db doesn't support construction: where something in :bind_var.
You can follow one of these approaches:
Decompiling ADF Binaries: Using oracle.jbo.domain.Array with ViewCriteria
Decompiling ADF Binaries: Using bind variable for the SQL statements with IN clause
Or try pure sql solution(I hope that [code] tag works on this new forum ):
[code]
select *
from contact
where first_name in (select substr(list,
instr(list, ',', 1, level) + 1,
instr(list, ',', 1, level+1) - instr(list, ',', 1, level) - 1)
from (select ','||:bindName||',' list from dual)
connect by level <= length(:bindName) - length(replace(:bindName,',',''))+1)
[/code]
So you can pass: James,John as value to :bindName variable
Dario
Similar Messages
-
How to set dynamic where clause in ADF?
Hi,
I have a View object called BillInfoVO. This has
all the information about who created the request, the time , status etc.,
I need to display this VO in a jsp. But before I display, i need to fileter this
VO results with different where clauses according to the role of the user.
For example, if the role is admin, then
where clause should be 'status = 'Completed, and created by = 'Current user'
If the role is requestor, then
the where clause should be
sales manager id = 'Current user' and
Status != Complete etc.,
Could any one please let me know how I can
dynamically set the where clause to filter the appropirate
result row set in the jsp?
Your help will be greatly appreciated.
Thanks,
venkiYou'll create a service method in your AM that will use the setWhereClause method of a viewobject.
Then you'll expose it as a client method.
Then you'll drag it from your data-control onto a button in your JSF page that will call your page for the query.
More about service methods here:
http://download.oracle.com/docs/html/B25947_01/bcservices003.htm#sm0206
http://download.oracle.com/docs/html/B25947_01/bcquerying008.htm#sthref286 -
How to set dynamic WHERE clause to VO from backingBean?
Hi,
Can any one let me know the best way to add the dynamic WHERE clause in to VO query.
I have created AM (with AMImpl.java) & VO (with VOImpl.java & VORowImpl.java) in my model project. I suppose to set the WHERE condition at runtime while the user click the search button. I am handling the user button click at UI layer backingBean. From the backing bean I could able to get the objct of the VO and set the where clause by below code.
ValueExpression valueExp = elFactory.createValueExpression(elContext, "#{bindings.UserSearchVO1Iterator}", Object.class);
DCIteratorBinding dcIter = (DCIteratorBinding)valueExp.getValue(elContext);
ViewObject userSearchVO = dcIter.getViewObject();
userSearchVO.setWhereClause("lower(usr_login) LIKE ':1' and usr_udf_suid like ':2' ");
userSearchVO.executeQuery();But as I fear this is not the right way to do it. So I am creating the cutom method inside the VOImpl.java and triggring that method by creating one more cutom method in AMImpl.java. But I dont know how to invoke this AM method from backingBean.
AMImpl method
public void initDetails()
UserSearchVOImpl vo = getUserSearchVO1();
vo.initQuery();
VOImpl method
public void initQuery()
setWhereClause("lower(usr_login) LIKE 'a%' and usr_udf_suid like '%1144%'");
executeQuery();
}Can any one guide me which is the best way to set the where clause to VO? How to call the AM method from backingBean?
Thanks
klni am new to oracle 11g i writing a stored procedure in which i have made use of case in where clause to pass my parameter value v_toStoreID
i have googled a lot regarding that i found that to use case in where clause it should be like this
where
case column_value
when 0
then value1
else
value2
end
this my query
SELECT ITMID as ItemId,
NVL(OrderDtl.PackageID, 0) PackageId,
OrderDtl.OrdDtlID,
(CASE NVL(OrderDtl.PackageID, 0)
WHEN 0
THEN 1
ELSE 0
END) as PackageFlag,
ivitem.Code ItemCode,
ivitem.ITMNAME AS itemName,
IvPatientIssueMst.IssueNo Issue_No,
to_char(Issuedate, 'DD/MM/YYYY') IssueDate,
OrderDtl.OrdQty,
NVL(OrderDtl.AllocationID, 0) Package,
OrderDtl.ServiceAmount MRP
FROM IvPatientIssueMst
JOIN OrderMst
ON IvPatientIssueMst.OrderId = OrderMst.OrdId
JOIN OrderDtl
ON OrderDtl.OrdID = OrderMst.OrdId
JOIN ivitem
ON ivitem.ITMID = OrderDtl.DrugId
LEFT JOIN IVPatientIndentMst
ON IVPatientIndentMst.IndentID = IvPatientIssueMst.IndentId
WHERE OrderMst.OrdVisitID = 395899
AND
*(CASE IvPatientIssueMst.StoreId*
when NVL(IvPatientIssueMst.StoreId, 0)=0
THEN v_toStoreID
ELSE IVPatientIndentMst.ToStoreID
END)
ORDER BY ivitem.ITMNAME;
it is not working please someone help -
How to set dynamic table name in sql query?
I want set dynamic table name by parameter in sql query,just like:
select * from :tbname
but run report is error,BI P report table name is invalidation.
What can i do? Thanks!Hi,
that's only possible inside a data template with a lexical parameter.
Regards
Rainer -
How to set dynamic parameter in list of values in parameter property
Hi,
I am using cr4e-all-in-one-win_2.0.1version.I have created .rpt file in that how to set dynamic parameters(from database) in list of values parameter property
Regards,
amolHi,
I am using cr4e-all-in-one-win_2.0.1version.I have created .rpt file in that how to set dynamic parameters(from database) in list of values parameter property
Regards,
amol -
How to set dynamic color , based on xml element
Hi,
We have a requirement, where based on certain conditions, a cell will be shown in a specific color. We would like the coloir to be based on an XML element. The xml element will have values like '#FF00FF' etc..
We tried using xsl attribute with the following syntax ,
<xsl:attribute xdofo:ctx="block"name="color"><?stdcolor?></xsl:attribute><?end if?>
where stdcolor is the xml element, but when we use this , this is giving a syntax error.
Let us know, if this is possible or is there any other alternate way to do this.
Regards,
- Vasu -Hi Vasu,
http://winrichman.blogspot.com/2008/09/how-to-set-dynamic-color-based-on-xml.html
use the following :)
<xsl:attribute xdofo:ctx="block" name="color" ><xsl:value-of select="stdcolor" /></xsl:attribute>
TO get the colors you wanted , you can refer to
http://www.w3schools.com/Html/html_colors.asp -
How to set the where clause of a value set on the basis of a form field
I am using a DFF(Descriptive FlexField), which needs to display the value of a certain column(say columnA) on the basis of the value of another column(say columnB).
So i have created a value set which points to the table which has both these columns, and the DFF uses this value set. However, the problem is that I have not put any where clause in the value set, because of which i cannot handle the exact fetch returns more than one rows error.
The query has to be as follows:
select ColumnA from tbl where ColumnB = [ a form value ];
What I want to know is how can i get the value of a certain field of a certain block of the form in the above query.
Edited by: 981615 on Jan 14, 2013 12:48 AM
Edited by: 981615 on Jan 14, 2013 12:48 AMJust have a look over these two statements if it solves your problem
one time where clause
Set_Block_Property('BLOCK_NAME',ONETIME_WHERE,your form item);
dynamic where clause
set_block_property('BLOCK_NAME'default_where, your form itme)
you can where clause at run time from any procedure or some triggers -
Setting dynamic WHERE clause in VO
Hi all,
I am using JDev 11.1.2.2.0. Example Scenario : In my application, In the first page, I am choosing a location value. In the second page I have a model based VO. The where clause of the query has to be set dynamically, based on the location what I am choosing in the first page. How to achieve this?
Regards,
InfyFirst make sure you have defined your method in the AM Impl class.
Here is a post from a few topics back :
umesh.agarwal wrote:
My question is how can I create a method that will return this information and use it from the ViewController ?For this:
1) Created a method in AMImpl
2) Exposed the method through Client Interface.
See this for more details:
http://docs.oracle.com/cd/E12839_01/web.1111/b31974/bcservices.htm#sm0212
Then
3) Define a method action binding in your jspx page(pagedef) where you want to access this method.
http://docs.oracle.com/cd/E15523_01/web.1111/b31974/web_adv.htm#ADFFD20984
4) Use the below code to call the AM method from View controller
DCBindingContainer bindings =
(DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
OperationBinding operationBinding =
bindings.getOperationBinding("<method_name_in_AM>");
if (operationBinding != null) {
operationBinding.execute();
Object obj = operationBinding.getResult(); //obj will contain the value returned from your AM method
Step 4) is when you want to call that method from a bean.
You can also drag that method (from your data control) on your page. JDev will then ask if you want to make a form of it.
When you choose for that option, you will get an input field and a button. When you fill in the parameter in that input field and then hit the button, the method will be
executed and will use the inputed value as your parameter. -
How to set dynamic relevance in biee admin tool?
Source: essbase cube
purpose: realize dynamic relevance prompt in answer,
For example: I have measure(price,sales quantity), dimension(city, product name), 'city' and 'product name' set as prompt, when I choose one city, the product prompt should only display the product name which the city sells, how to set it in admin tool? any idea will be welcome.Source: essbase cube
purpose: realize dynamic relevance prompt in answer,
For example: I have measure(price,sales quantity), dimension(city, product name), 'city' and 'product name' set as prompt, when I choose one city, the product prompt should only display the product name which the city sells, how to set it in admin tool? any idea will be welcome. -
How to set dynamic name of the mail attachment according to source file ?
Hi,gurus:
Our scenario is like below:
Sending files from an FTP server to another FTP server without using the integraiton repositary,and the file name is not changed .Now, we want to also send the file to some with by mail adapter.The scenario now works by using two business services in receiver determination.But the name of the attachment is "untitled.xml".We know how to set the file name staticly,but how to set the name dynamicly according to the source file name ?
I have checked miachel's blog "XI: Dynamic name in the mail attachment - pseudo "variable substitution"(/people/michal.krawczyk2/blog/2006/02/23/xi-dynamic-name-in-the-mail-attachment--pseudo-variable-substitution),but how can I get the source file name?
And another question:Must we restart the adapter or j2ee engine to make the user defined module work?Hi,
>>>but how can I get the source file name?
form dynamicconfiguration (ASMA)
>>>And another question:Must we restart the adapter or j2ee engine to make the user defined module work?
no need for a restart
Regards,
Michal Krawczyk -
How to set Dynamic value to context variable
hi all
Can anyone suggest me how to change value of context variable.
In short i need to set dynamic value to context variable
here is my code in web.xml
*<context-param>*
*<param-name>sessionTimeOutValue</param-name>*
*<param-value>200</param-value>*
*</context-param>*ChintanPatel wrote:
here is my code in web.xml
*<context-param>*
*<param-name>sessionTimeOutValue</param-name>*
*<param-value>200</param-value>*
*</context-param>*You can set the session time using httpsession.setmaxinactiveinterval -
How to Set Distinct SQL Clause on View Object without using Expert Mode.
Hi to all Actually i have a View Object usign 3 entities
if i use expert mode in my VO, it generate
QRSLT WHERE
instruction and force to include all columns on my dynamic where clause on select statement i can't include columns because get me duplicate rows
How i can include disctinct clause without usign expert mode or any other solution?
Note that in normal mode without expert mode QRSLT WHERE is not generate and all work fine
For example
select * ( select id , name from table) QRSLT WHERE loc = ..
if i use expert mode it generate QRSLT WHERE and if loc is not predicated colums get me and error :
( ORA-00904: invalid identifier )
in simple mode of View Object all work fine..
Any suggestion on It will be appreciate.....
TnxMy problem is that when use expert mode
it's change simple select statement for a select that use
select * from (select column....)
qrslt WHERE (column=somevalue)
this kind of select force me to include all where conditions of qrslt on my select columns and this get duplicate rows
thats beacuse i need include distinct without use expert mode
Anny Help on this? -
How to create dynamic where clause instead of pragmatically
Hi,
I'm using Jdev 11.1.2.2.0 and my requirement to create a two fields with search button to fetch data as adf table. User need to enter either of the field value and click search button to see his data.
So I created a sql query based view object with 2 bind variables (which are input params) & 2 view criteria (to create dynamically where clause) and then drag on to the page by ExecuteWithParams operation from data controls but couldnt work.
If anyone have idea to build dynamically please let me know.
AmarUser need to enter either of the field value and click search button to see his data.User need to enter either of the field value and click search button to see his data.
Hi Amar,
Is your requirement, creating a query panel with table??
Drag and drop the view criteria(Application Navigator>DataControls> AppModule >NamedCriteria> ViewCriteriaName ) onto the page.
In the context menu, select Query->ADFQueryPanel With Table.. That brings your necessary two columns and Search field with data represented as a table.
Harsha
Edited by: Harsha049 on Nov 28, 2012 3:51 PM -
Dynamic where clause in my query
I am using a view
select * from vw_pt_inv_customer
My requirement is have a web page where users can search for customers by filling in a form which has the following feilds: - User can fill in the form with all the feilds or not. I want a dynamic where clause.. how can i get this work for me?
Title
Firstname
Surname
Address1
Address2
Postcode
Telephone No879796 wrote:
I am using a view
select * from vw_pt_inv_customer
My requirement is have a web page What web frame work is used? Apex? Something else?
where users can search for customers by filling in a form which has the following feilds: - User can fill in the form with all the feilds or not. I want a dynamic where clause.. how can i get this work for me?Dynamic where clauses are a Very Bad Idea (tm).
And having an open ended search function on a web page is also not a great idea.
If you are using Apex, the for performance (and even query flexibility) it will be better creating a separate reporting region for each unique query. A boolean rendering condition checks the existing bind variables in order to determine if that specific reporting region should be executed.
This results in a reporting region having a proper and dedicated SQL query (no hacking of the where clause) and that region only being rendered for the proper combination of supplied filter criteria.
A slightly more complex, but more flexible approach, is using a generic reporting region that calls a PL/SQL function that creates returns the SQL query for execution and rendering. The approach to this is very similar to constructing a SQL ref cursor (dynamically) for a client. The only difference is that instead of creating the actual ref cursor, the code simply needs to return the SQL source code statement - with bind variables. The Apex run-time does the rest (does the binds and execution and rendering).
If you are not using Apex - you should still consider these approaches. And not hacking a single SQL to cater for all different types of filter conditions. -
Dynamic where clause in select query
Hi
I'm trying for a dynamic query and in the dynamic where clause i'm checking a field for constant.....for instance if i wanna to use WERKS EQ '0478' how to declare it in dync where clause. i tried for the following:
SELECT (TAB_FIELD) INTO TABLE DITAB UP TO 10 ROWS FROM (TAB_NAME) WHERE (CONDI).
heree CONDI = 'werks eq 0287' . in this case the query fails as the werks shud be equal to '0287' and not just 0287. How to handle this? i tried for the following
CONDI = 'werks eq " '0287' " ' but no luck as it is not a valid stmt as i knew.hi prabhu,
this is how u select dynamically...
DATA: COND(72) TYPE C,
ITAB LIKE TABLE OF COND.
PARAMETERS: CITY1(10) TYPE C, CITY2(10) TYPE C.
DATA WA TYPE SPFLI-CITYFROM.
CONCATENATE 'CITYFROM = ''' CITY1 '''' INTO COND.
APPEND COND TO ITAB.
CONCATENATE 'OR CITYFROM = ''' CITY2 '''' INTO COND.
APPEND COND TO ITAB.
CONCATENATE 'OR CITYFROM = ''' 'BERLIN' '''' INTO COND.
APPEND COND TO ITAB.
LOOP AT ITAB INTO COND.
WRITE COND.
ENDLOOP.
SKIP.
SELECT CITYFROM
INTO WA
FROM SPFLI
WHERE (ITAB).
WRITE / WA.
ENDSELECT.
regards,
sohi
Maybe you are looking for
-
Wish List - New Feature - Mark Songs for Deletion on iPhone
It'd be very handy if you could mark a song for deletion on the iphone and then when you next sync your iphone, the marked songs will get removed. You could also have an option in itunes to say whether you want the songs to be deleted from comp too.
-
HT3529 Why cant i send and receive pictures thru text it worked before now nothing
Why cant Isend and receive pictures thru the text it worked before now nothing
-
Hi Team, I am very new to crystal reports. My requirement is to pass a date parameter to crystal report server. Everytime it is showing error or it will show prompt window. I dont want any of these two. When i pass other datatypes like string and all
-
PBR for a locally configured router IP address
Hello community ! I am trying to perform a very specific thing. I would like to perform a PBR for a subnet range located remotely. However one of the IP of this subnet is configured locally on the router (interface IP @) ! I know that PBR takes prece
-
Hi Im using a cfformgroup type - accordion. WHen the page loads, the 1st tab is opened. By default i want them to all be closed. selectedindex="0" doesnt work. it still keeps my 1st level opened when the page loads Please help me here. Its driving me