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,
    venki

    You'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
    kln

    i 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,
    amol

    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,
    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 AM

    Just 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,
    Infy

    First 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.....
    Tnx

    My 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.
    Amar

    User 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 No

    879796 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

  • Crystal Report jsp

    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

  • Cfformgroup Accordion issue

    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