Making ADF Search case insensitive without using Execute with Params??

I have a ADF search page baed on VO. I'm not Execute with Params form, instead i'm using normal ADF search page. Is it possible to make the search case insensitive?? if yes, how to do that?

Ok, i'll try to find out the SRDemo application using ADF BC.
And In Execute with params form,i'm already using UPPER on both the sides of where clause.
Say my VO query is like
select <table name>,...
from fnd_tables t,fnd_applications a
where a.application_id = t.application_id
and upper(t.table_name) like upper(:EntityName) || '%'
Then i created the ADF paramaters form by dragging and dropping the Execute with param from data control pallette.. when i run this page and do the search, it throws the error given in my second update...Any clue why that error is coming?
Thanks
Senthil

Similar Messages

  • How to search case insensitive ?

    Is there any way to search case insensitive ?
    Because we use Remedy application, we can't change query like to use 'UPPER' or 'LOWER' functions.
    For example,
    SQL> desc test1
    Name Null? Type
    A VARCHAR2(20)
    SQL> select * from test1;
    A
    TEST
    test
    SQL> select * from test1 where A like 'TE%';
    then I expect result as following:
    A
    TEST
    test
    Please advise..

    If you can't change the query or schema then I'm afraid you are pretty much stuck. You can use a function based index if you stop using a wildcard (% forces a full-table scan and, therefore, does not use the index). If you had more control over the app, the context index would be good. Storing the data in all uppercase is another solution. All of the solutions are controled by the app vendor though.
    My advice - log an enhancement with Remedy...suggest using a context index on the column in question.

  • Search case-insensitive.

    HI All ,
    i want to create program that use search from table but case-insensitive ,
    How i can do that ?
    Regards
    James
        SELECT agr_name UP TO iv_limit ROWS
        FROM ZROLE
        INTO TABLE lt_re_role
        WHERE agr_name LIKE lv_search_value.

    Hi,
    If the definition is not case sensitive, then always the data is stored in CAPS by default.
    So what u can do it, translate your string to UPPER CASE and then select.
    Place below statement just before your select.
    TRANSLATE lv_search_value TO UPPER CASE.
    SELECT agr_name UP TO iv_limit ROWS
    FROM ZROLE
    INTO TABLE lt_re_role
    WHERE agr_name LIKE lv_search_value.
    Thanks,
    Vinod.

  • ADF table: case-insensitive sorting

    I have an <af:table> that uses a SortableModel as it's data source. I have sorting enabled on the table, but it's sorted according to case sensitivity.
    My data source has mixed case, and I'd like to be able to sort regardless of case. Is there anyway to change the behavior so it does a case-insensitive sort instead?
    Thanks

    In case anyone else is looking for this, I went ahead and wrote an extension of CollectionModel that performs a case insensitive sort on String objects. I'm posting it here in the hopes it will help others in the same jam I was. It would really have been helpful if Oracle had made the source code to SortableModel available. I hope I did things properly with the rowKey stuff since there are no examples to work from.
    Anyway, here it is:
    package com.fhm.mwb.ui.model;
    import oracle.adf.view.faces.model.CollectionModel;
    import oracle.adf.view.faces.model.SortCriterion;
    import org.apache.commons.beanutils.BeanComparator;
    import org.apache.commons.collections.comparators.ComparableComparator;
    import org.apache.commons.collections.comparators.ComparatorChain;
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    import javax.faces.FacesException;
    import javax.faces.model.DataModelEvent;
    import javax.faces.model.DataModelListener;
    * This class provides a sortable data model that uses case insensitive sort order when processing
    * String objects.  All other objects in the data must implement Comparable and are sorted using
    * Comparable.compare().
    public class CaseInsensitiveSortableModel extends CollectionModel {
        private static BasicComparator _comparator = new BasicComparator();
         * Default constructor.
        public CaseInsensitiveSortableModel() {
         * Construct on top of a list of data.
         * @param list List of data to wrap in the model
        public CaseInsensitiveSortableModel(List list) {
            setWrappedData(list);
         * Set the sort criteria for this model
         * @param criteria List of SortCriterion objects
        public void setSortCriteria(List criteria) {
            _sortCriteria = criteria;
            if((criteria != null) && (criteria.size() > 0)) {
                // Sort our model data using this new criteria
                ComparatorChain chain = new ComparatorChain();
                for(int i = 0; i < criteria.size(); i++) {
                    SortCriterion crit = (SortCriterion) criteria.get(i);
                    chain.addComparator(new BeanComparator(crit.getProperty(), _comparator),
                        !crit.isAscending());
                List list = (List) getWrappedData();
                Collections.sort(list, chain);
                setWrappedData(list);
            } else {
                // Clear out our sort order
                _sortCriteria = new ArrayList();
         * Get the current sort criteria.
         * @return List of sort criteria
        public List getSortCriteria() {
            return _sortCriteria;
         * Determine if a given column is sortable.
         * @param column Name of the column to test
         * @return boolean true if the column is sortable
        public boolean isSortable(String column) {
            return true;    // Everything is sortable for now
         * Sets up a value at a particular rowKey to be the current value. The current value
         * is returned by calling {@link #getRowData}.
         * @param rowKey the rowKey of the value to make current. Use null to clear the current value.
        public void setRowKey(String rowKey) {
            if(rowKey == null) {
                setRowIndex(-1);
            } else {
                setRowIndex(Integer.valueOf(rowKey).intValue());
         * Gets the rowKey of the current value. The current value is returned by
         * calling {@link #getRowData}.
         * @return the rowKey of the current value, or null if there is no current value
        public String getRowKey() {
            return isRowAvailable() ? String.valueOf(_rowIndex) : null;
         * Set the list data we are wrapping
         * @throws ClassCastException if data is
         *  non-null and is not a List
        public void setWrappedData(Object data) {
            _wrappedList = (List) data;
            if(_wrappedList == null) {
                setRowIndex(-1);
         * Return the object representing the data wrapped by this model, if any.
        public Object getWrappedData() {
            return _wrappedList;
         * Return true if there is wrappedData
         * available, and the current value of rowIndex is greater
         * than or equal to zero, and less than the size of the list.  Otherwise,
         * return false.
         * @exception FacesException if an error occurs getting the row availability
        public boolean isRowAvailable() {
            return ((_rowIndex < 0) || (_rowIndex > getRowCount())) ? false : true;
         * If there is wrappedData available, return the
         * length of the list.  If no wrappedData is available,
         * return -1.
         * @exception FacesException if an error occurs getting the row count
        public int getRowCount() {
            return (_wrappedList == null) ? (-1) : _wrappedList.size();
         * If row data is available, return the list element at the index
         * specified by rowIndex.  If no wrapped data is available,
         * return null.
         * @exception IllegalArgumentException if now row data is available
         *  at the currently specified row index
        public Object getRowData() {
            if(_wrappedList == null) {
                return null;
            } else if(!isRowAvailable()) {
                throw new IllegalArgumentException("No row data available");
            } else {
                return wrappedList.get(rowIndex);
         * Return the zero-relative index of the currently selected row.  If
         * we are not currently positioned on a row, or no wrappedData
         * is available, return -1.
         * @exception FacesException if an error occurs getting the row index
        public int getRowIndex() {
            return _rowIndex;
         * Set the zero-relative index of the currently selected row, or -1
         * to indicate that we are not positioned on a row.  It is
         * possible to set the row index at a value for which the underlying data
         * collection does not contain any row data.  Therefore, callers may
         * use the isRowAvailable() method to detect whether row data
         * will be available for use by the getRowData() method.
         * If there is no wrappedData available when this method
         * is called, the specified rowIndex is stored (and may be
         * retrieved by a subsequent call to getRowData()), but no
         * event is sent.  Otherwise, if the currently selected row index is
         * changed by this call, a {@link DataModelEvent} will be sent to the
         * rowSelected() method of all registered
         * {@link DataModelListener}s.
         * @param rowIndex The new zero-relative index (must be non-negative)
         * @exception FacesException if an error occurs setting the row index
         * @exception IllegalArgumentException if rowIndex
         *  is less than -1
        public void setRowIndex(int rowIndex) {
            if(rowIndex < -1) {
                throw new IllegalArgumentException("Row index must be >= 0");
            int old = _rowIndex;
            _rowIndex = rowIndex;
            if(_wrappedList == null) {
                return;
            DataModelListener[] listeners = getDataModelListeners();
            if((old != _rowIndex) && (listeners != null)) {
                Object rowData = null;
                if(isRowAvailable()) {
                    rowData = getRowData();
                DataModelEvent event = new DataModelEvent(this, _rowIndex, rowData);
                int n = listeners.length;
                for(int j = 0; j < n; j++) {
                    if(null != listeners[j]) {
                        listeners[j].rowSelected(event);
        private List _wrappedList = new ArrayList();
        private List _sortCriteria = new ArrayList();
        private int _rowIndex = -1;
         * Internal class to provide a general Comparator that treats Strings in a case
         * insensitive manner.  All other types are assumed to be instances of Comparable
         * and handled as such.
        private static class BasicComparator implements Comparator, Serializable {
            private static final Comparator INSENSITIVE_COMPARATOR = String.CASE_INSENSITIVE_ORDER;
            private static final Comparator NORMAL_COMPARATOR = ComparableComparator.getInstance();
            public BasicComparator() {
            public int compare(Object o1, Object o2) {
                if(o1 instanceof String && o2 instanceof String) {
                    return INSENSITIVE_COMPARATOR.compare(o1, o2);
                } else {
                    return NORMAL_COMPARATOR.compare(o1, o2);
    }

  • Delete From More than 1 table without using execute immediate

    Hi,
    Am new to PL/SQL, I had been asked to delete few of the table for my ETL jobs in Oracle 10G R2. I have to delete(truncate) few tables and the table names are in another table with a flag to delete it or not. So, when ever I run the job it should check for the flag and for those flag which is 'Y' then for all those tables should be deleted without using the Execute Immediate, because I dont have privilages to use "Execute Immediate" statement.
    Can anyone help me in how to do this.
    Regards
    Senthil

    Then tell you DBA's, or better yet their boss, that they need some additional training in how Oracle actually works.
    Yes, dynamic sql can be a bad thing when it is used to generate hundreds of identical queries that differ ony in the literals used in predicates, but for something like a set of delte table statements or truncate table statements, dynamic sql is no different in terms of the effect on the shared pool that hard coding the sql statements.
    This is a bad use of dynamic sql, because it generates a lot of nearly identical statements due to the lack of bind variables. It is the type of thing your DBA's should, correctly, bring out the lead pipe for.
    DECLARE
       l_sql VARCHAR2(4000);
    BEGIN
       FOR r in (SELECT account_no FROM accounts_to_delete) LOOP
          l_sql := 'DELETE FROM accounts WHERE account_no = '||r.account_no;
          EXECUTE IMMEDIATE l_sql;
       END LOOP;
    END;This will result in one sql statement in the shared pool for every row in accounts_to_delete. Although there is much else wrong with this example, from the bind variable perspective it should be re-written to use bind variables like:
    DECLARE
       l_sql  VARCHAR2(4000);
       l_acct NUMBER;
    BEGIN
       FOR r in (SELECT account_no FROM accounts_to_delete) LOOP
          l_sql := 'DELETE FROM accounts WHERE account_no = :b1';
          EXECUTE IMMEDIATE l_sql USING l_acct;
       END LOOP;
    END;However, since you cannot bind object names into sql statements, the difference in terms of the number of statements that end up in the shared pool between this:
    DECLARE
       l_sql VARCHAR2(4000);
    BEGIN
       FOR r in (SELECT table_name, delete_tab, trunc_tab
                 FROM tables_to_delete) LOOP
          IF r.delete_tab = 'Y' THEN
             l_sql := 'DELETE FROM '||r.table_name;
          ELSIF r.trunc_tab = 'Y' THEN
             l_sql := 'TRUNCATE TABLE '||r.table_name;
          ELSE
             l_sql := NULL;
          END IF;
          EXECUTE IMMEDIATE l_sql;
       END LOOP;
    END;and something like this:
    BEGIN
       DELETE FROM tab1;
       DELETE FROM tab2;
       EXECUTE IMMEDIATE 'TRUNCTE TABLE tab3';
    END;or this as a sql script
    DELETE FROM tab1;
    DELETE FROM tab2;
    TRUNCTE TABLE tab3;is absolutley nothing.
    Note that if you are truncating some of the tables, and wnat/need to use a stored procedure, you are going to have to use dynamic sql for the truncates anyway since trncate is ddl, and you cannot do ddl in pl/sql wiothout using dynamic sql.
    John

  • How to compare string in a case-insensitive manner using JavaScript?

    Hello everyone,
    Now I have a javascript to compare checkbox's value with user's input, but now seems it only can compare case-sensitively, does some one know if there is a function in javascript that it can compare string case-insensitively ?
    Here is my script :
    function findOffice(field)
    var name;
    name=prompt("What is the office name?");
    var l = field.length;
    for(var i = 0; i < l; i++)
    if(field.value==name)
    field[i].checked=true;
    field[i].focus();
    field[i].select();
    break;
    <input type="button" name="Find" value="Find And Select" onClick="findOffice(form1) >
    Thanks in advance !
    Rachel

    Thank you so much, I already solved the problem with your advice.
    You really have a beautiful mind, :-).
    I appreciate your help !
    Rachel

  • How to implement Master-Detail Search in TopLink without using DataControl

    Hi,
    I am using TopLink and EJB in our requirement. But we are not creating any data controls. Without data controls how to implement master detail search using TopLink and EJB. I did search for a single table. It is working fine. The way i implented is as follows.
    1) Taking search parameter from UI and passing it to A delegator class's method.
    2) Delegator class's method calls the EJB's NamedQuery which i already created using expression builder.
    3) EJB executes the NamedQuery with the parameter we are passing. And it returns the results back to UI.
    But as i am new to TopLink, can anyone tell me the procedure to implement Master - Detail search. Here we need to search based on Master table's column.
    Waiting for the replies regarding this.
    Thanks & Regards,
    Suresh Kethireddy

    Hi,
    I did it successfully. Following is the code.
    Session session = getSessionFactory().acquireSession();
    UnitOfWork uow = session.acquireUnitOfWork();
    ReadAllQuery raq = new ReadAllQuery();
    Dept d = new Dept();
    d.setLoc(loc);
    raq.setExampleObject(d);
    List<Dept> res=(List<Dept>)uow.executeQuery(raq);
    for(int i=0; i<res.size();i++){
    System.out.println("Dept DeptNo ---"+res.get(i).getDeptno());
    System.out.println("Dept DeptName ---"+res.get(i).getDname());
    System.out.println("Dept Location ---"+res.get(i).getLoc());
    List<Emp> eRes=res.get(i).getEmpCollection();
    for(int j=0; j<eRes.size();j++){
    System.out.println(" Emp No ---"+eRes.get(j).getEmpno());
    System.out.println(" Emp Name ---"+eRes.get(j).getEname());
    System.out.println("Emp HireDate ---"+eRes.get(j).getHiredate());
    System.out.println(" Emp Job ---"+eRes.get(j).getJob());
    System.out.println(" Emp Mgr ---"+eRes.get(j).getMgr());
    System.out.println(" Emp Sal ---"+eRes.get(j).getSal());
    But now my question is, i want to search by providing Dept param as well Emp(Which is child table) param also. Is it possible?
    I tried in 2 ways like this.
    1) Emp emp = new Emp();
    emp.setEname(eName);
    dept.addEmp(emp);
    raq.setExampleObject(dept);
    2) Emp e = new Emp();
    e.setEname("ADAMS");
    List<Emp> list = new ArrayList();
    list.add(e);
    d.setEmpCollection(list);
    raq.setExampleObject(d);
    But in both cases i failed to search based on the values i am passing to Emp.
    Is there any other way to achieve my requirement?
    Any help on this is great.
    Thanks & Regards,
    Suresh K

  • Create a script to create multiple objects without using execute immediate.

    I have a function that requires several objects (4 types, 8 functions) to run. Right now they're in separate sql files. I'd like to combine them into one file that I would run but I'd rather not use the 'execute immediate' since it seems like you have to escape quotes and the like.
    How would you do that?
    Thanks in advance,
    J

    Yeah I thought about that but I'd like them all to be in one file.
    I believe I figured it out though. (about 20m after I posted no less)
    Adding a '/' on it's own line after each block of code appears to do the trick. I just have to write a bit of code to drop a dependent type if it exists.
    J

  • Gaining root/making standard user an admin without using CD or Single user mode?

    Hi.
    I just installed (upgraded to) Snow Leopard on my 2009 macbook pro from CD. WHen I pooked around in my fresh install, I noticed that I was no longer an admin user, instead a standard user.
    I retsrtaed from the Snow Leopard install CD and went to reset password utility... and here's the stupid part. I also added a firmware password. Don't ask me why I thought this was a good idea at the time. It clearly wasn't.
    So now I'm back in that fresh new snow leopard install, where my resetting of the standard users password only gave the standard user a password, but did not elevate that user to admin, and no way of starting from the CD again.
    There's a root user, I do not know what the password is. The standard user can not sudo. I'm not afraid to work in terminal. Without keboard access to this, I can not make it a target computer via firewire either.
    I'd really rather not have to go to the apple store again for this, I've been there twice recently changing batteries and hard drives, and I had to get my snow leopard CD elsewhere as they didn't have any.

    SOLVED IT!
    So, I'm leaving this here in case anyone else scatterbrains themselves into the same situation.
    Restart computer, while holding OPTION key down.
    A lock screen will come up asking for the firmware password. After you have entered this, you can select to start from the OS dvd.
    Once started from the DVD you can remove the firmware password (if you want) and even better, you can reset the passwords of other user with the password reset utility.
    Make sure to add a passwird to the ROOT account.
    Restart as normal. Then in settinggs, find your user, and passwording in root to change these settings, make that user an admin.
    Ta-da, done.

  • How to create a line without using execute action method.

    Hi All,
    I want to create a line whose weight and co-ordinate are given to me. I am using ActionDescriptor and execute action method to do this.
    Here is my code:
        var idcontentLayer = stringIDToTypeID( "contentLayer" );
        var idStrt = charIDToTypeID( "Strt" );
        var idHrzn = charIDToTypeID( "Hrzn" );
        var idPxl = charIDToTypeID( "#Pxl" );
        var idVrtc = charIDToTypeID( "Vrtc" );
        var idPnt = charIDToTypeID( "Pnt " );
        var actRef = new ActionReference();
        actRef.putClass( idcontentLayer );
        var layerDesc = new ActionDescriptor();
        layerDesc.putReference( charIDToTypeID( "null" ), actRef );
        var lineDesc = new ActionDescriptor();
        lineDesc.putClass( charIDToTypeID( "Type" ), stringIDToTypeID( "solidColorLayer" ) );
        var propertyDesc = new ActionDescriptor();
        var strtPointDesc = new ActionDescriptor();
        strtPointDesc.putUnitDouble( idHrzn, idPxl,  startX);                         //startX, startY, endX, endY are given..
        strtPointDesc.putUnitDouble( idVrtc, idPxl, startY);
        var endPointDesc = new ActionDescriptor();
        endPointDesc.putUnitDouble( idHrzn, idPxl, endX );
        endPointDesc.putUnitDouble( idVrtc, idPxl, endY );
        propertyDesc.putObject(  charIDToTypeID( "Strt" ), idPnt, strtPointDesc );
        propertyDesc.putObject( charIDToTypeID( "End " ), idPnt, endPointDesc);
        propertyDesc.putUnitDouble( charIDToTypeID( "Wdth" ), idPxl, weight );               // weight is given.
        lineDesc.putObject( charIDToTypeID( "Shp " ), charIDToTypeID( "Ln  " ), propertyDesc );
        layerDesc.putObject( charIDToTypeID( "Usng" ), idcontentLayer, lineDesc );
        executeAction( charIDToTypeID( "Mk  " ), layerDesc, DialogModes.NO );
    Is there any other way to do the above (using photoshop scripting method)?
    Thanks,
    AI

    You can only create normal and text layers using the Object Model. For other layer types you have to use Action Manager.

  • Has anyone else had their Support Case closed without notification and with false details?

    My support case was "withdrawn" by Adobe for false reasons and nobody contacted me when they closed the case.  Is this normal?  After the case was established they asked me to provide some more information (proof) by uploading to the support case.  I did this on 6/21/15 (uploaded the file they requested) but on 6/25/14 they closed the case and said that I never replied even though my reply is there for all to see and it even shows the uploaded file.  Additionally they never contacted me, they just closed it.
    I always had a really positive view of Adobe until I had to contact them for some support on 6/18...since then, not so much.

    Was it for a current version?
    What is the problem?  Maybe somebody here can help.

  • How execute with params at selection in a combobox?

    I have this:
    A data control for the payload of BPM:
    <PROYECT_ID/>
    <TASK_ID/>
    <CATEGORY_ID/>
    Was needed convert them into combobox. I did something like this: http://blogs.oracle.com/shay/entry/adf_query_with_parameters_and
    All comboboxs work, but they need dependencies between their choices.
    The task depends on proyect, and the category depends on proyect AND task.
    In addition I have 3 view objects: ProyectsView, TasksView and CategoriesView. I edited TasksView query, adding WHERE TasksView.PROYECT_ID = :ProyectID.
    How can I do a executeWithParams when the proyects combobox changes?
    Thanks in advance.

    You can use a value change listener on combobox and access the iterator binding and execute the query. Make sure you use the getNewValue(). Also this can be accomplished by making using cascading lov's, if you use this you do not have to manually query them.
    http://oracamp.com/jdevadf-sample-cascading-lovs-oracle-adf-11g-update-1

  • Case insensitivity setting?

    I hope someone can help me. I am using Oracle 9i as my database with Remedy ARS on top. I want to have all queries/searches on text fields to be case insensitive. Remedy indicates this is a database setting but I can't find it documented anywhere. Please Advise...
    Thanks,
    Doug...

    Hi,
    As far as I know there is no way to make Oracle case insensitive, without using functions.
    Paolo

  • Implement QBE case insensitive search using model layer?

    Using ADF 11.1.1.6.2
    We know we can set filterFeatures='caseInsensitive' at UI layer to make QBE to search case insensitive.
    How can we push that behavior using model layer implementation?
    Thanks

    Using ADF 11.1.1.6.2
    We know we can set filterFeatures='caseInsensitive' at UI layer to make QBE to search case insensitive.
    How can we push that behavior using model layer implementation?
    Thanks

  • Use of wildcard and case insensitive searches

    Used the "Create form from a table" option. Have a customized form for this table to query, insert, update, and delete rows. My question is how can I allow a user to 1) search using a wildcard (%) from this form and 2) how can I make the search case insensitive for my users.
    Thanks

    Hi,
    Why not create a report to find the records and link to the form from the report.
    You can then set the where clause to be whatever you wish:
    where tablename.columnname like :parameter
    or even:
    where UPPER(tablename.columnname) like UPPER(:parameter)
    Regards Michael

Maybe you are looking for

  • Chinese characters copying incorrectly when saving pdfs with Preview

    So this is a very strange problem. When I save a .pdf that I have annotated in Preview, it saves fine and everything continues to display correctly. However, if I then try to copy Chinese characters from the pdf, it pastes gibberish. F'rex: 灿烂辉煌 beco

  • Acrobat 8 - IE 7 - Vista - Stops Working

    Everytime I try to open an Acrobat document in IE7 I the browser downloads the file and then I get a message that Acrobat has stopped working and it must close. When I click OK, I get a diagnostic message from Microsoft that it is an Adobe error with

  • Replacement of Cisco with Airport Express

    Why would devices WiFi connected to a router (Cisco) eplaced by new router (Apple Airport Express) not automatically connect if the name and password were identical? I replaced a Cisco EA4500 with and Airport Express.  I used the same name and passwo

  • Migrating form to apex....

    i have migrated a form. after migrated i gone to create application section based on migration then i click next 'button' it show below error. 1 error has occurred Database schema EFREIGHT does not contain the associated database objects for the proj

  • Regular Expression to check for some of the special characters

    Can someone please provide me a RegularExpression to check if a string contains any of the speical characters i.e. *!@#$%^&*()_+ []{}:;',./<>?~`* Thanks Edited by: whitesox12 on Apr 3, 2008 9:46 PM