Phonetic and case insensitive searches in Oracle

Hi,
Do you know if Oracle 9i allows phonetic searches ? I've found several solutions for case insensitive searches, but I'd need phonetic searches too (like 'había' vs. 'havia' vs. 'habia', etc)
Any comment would be really welcome.
Thanks in advance,
Juan

lookup soundex in the SQL Reference guide.

Similar Messages

  • Case sensitive and case insensitive Search

    Hi friends,
         Iam doing an Search RFC which will search records based on the search parameters provided at the portal side.
    One of the search parameter is a field with 40 character which holds the description(title) of the record.
    With this search paramter iam facing case sensitive problem.
    Example:
    Values in Database Table: ( Can be in any case)
           Record 1:  Sensitive
           Record 2:  SENSITIVE
           Record 3:  SensTive
           Record 4:  sensitive
           Record 5:  sensTive
         Input to RFC:  sens*
         Output: Getting only 4rth and 5th record but not all the records.
           The same is the case with the remaining search parameters(Like user name..).
           Is there any way of getting all the records when searching from the data base (with case insensitive).
           Kindly let me know if there is any possibility.
    Thanks in advance.
    Regards,
    Swarna Munukoti.

    Generally, no.  So, you'll either have to use EXEC SQL, or add more fields to the table.  You can do this using APPEND structures, which is the SAP approved way of adding fields.  If there are suitable user exits in the standard SAP code, then you'll be able to populate the additional fields there, as new records are created, or amended.
    Alternatively, create your own Z table with the same key as the standard table and a "search field" which contains the uppercase version of the field you're wanting to search.  You can either, again populate in suitable user exits, or, in worst case, have job that runs regularly populating your Z table.
    matt

  • 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

  • Possible to do case-insensitive searches?

    G'day,
    I was wondering if it's possible to do case-insensitive searches in oracle/HTMLDB?
    I've tried what I thought would work
    "select * from application where name like '%microsoft%'", this unfortunately doesn't return any records with a capital in it(eg "Microsoft").
    If there is no way to do case-insensitive searches what is the best way around it?
    Thanks
    -Colin

    Colin,
    Yes it is possible to do case insensitive searches using SQL. Try, for example:
    select * from application where upper(name) like '%ORACLE%'
    The trick is to upper() both sides of the like operator.
    Sergio

  • Case insensitive search and replace using ASP and Oracle database

    I am interested in providing a case insensitive search and replace query in a Active server page. At present data is collected from a html form which passes the text values to a ASP page. The ASP page runs a search (select query) to find if the data is already in the Oracle database, if it isn't the ASP page runs sql (INSERT) to insert the record, if not the page returns a form indicating that the record already exists. At present we can convert the case of new records using the VB UCase() function. But can't do a insensitive search with the existing records. *The Query must be able to utilize ASP variables.
    Any help would be much appreciated.
    David Cheryk
    null

    I can't check your script right now since I'm not on Mac. I recommend you to use FindChangeByList script for CS4 instead (it works with CS3): http://forums.adobe.com/servlet/JiveServlet/download/2080627-12695/FindChangeByListCS4.zip together with Martin Fisher's: http://www.kasyan.ho.com.ua/downloads/RecordFindChange_CS3_Kas.zip
    Use this script to record settings from Text and GREP tabs, then copy and paste them into FindChandgeList.txt file.
    Or, optionally you can use this script: http://www.kasyan.ho.com.ua/find_change_by_queries.html.
    Kasyan

  • Case Insensitive search and "IN" Clause - Open SQL

    Hi,
    I have some doubts regarding Open SQL:
    Is there any support for Case Insensitive Search in Open SQL, is it availabe by default?
    Is there any restriction on number of elements in "IN" Clause, in Open SQL, is there any default number?
    I have checked the [Open SQL Grammer|http://help.sap.com/saphelp_nwce711/helpdata/en/9b/f46cabaa874bc9a82234e8cf1d0696/frameset.htm] also, but nothing found there.
    Thanks,
    Piyush
    P.S I didn't find any other appropriate place to post this thread, let me know the correct categorization of Open SQL in case its wrong.

    Is there any support for Case Insensitive Search in Open SQL, is it availabe by default?
    When you are querying any strings, it is always case sensitive.
    Is there any restriction on number of elements in "IN" Clause, in Open SQL, is there any default number?
    I don't think there area any. IN opearator works like combined ORs and here you don't have any restrictions in fields number.
    Regards
    Marcin

  • Case insensitive search and "IN" Clause in Open SQL

    Hi,
    I have some doubts regarding Open SQL:
    - Is there any support for Case Insensitive Search in Open SQL, is it availabe by default?
    - Is there any restriction on number of elements in "IN" Clause, in Open SQL, is there any default number?
    I have checked the [Open SQL Grammer |http://help.sap.com/saphelp_nwce711/helpdata/en/9b/f46cabaa874bc9a82234e8cf1d0696/frameset.htm]also, but nothing found there.
    Thanks,
    Piyush
    P.S I didn't find any other appropriate place to post this thread, let me know the correct categorization of Open SQL in case its wrong.

    > I have some doubts regarding Open SQL:
    I believe that you've questions and not doubts...
    > - Is there any support for Case Insensitive Search in Open SQL, is it availabe by default?
    Nope, there is nothing like that. By default all supported database use a bytewise equal operator - case insensitivness needs to be programmed by hand.
    E.G. using UPPER(x)/LOWER(x) functions.
    Be aware that this disables the possibilities of index usage.
    > - Is there any restriction on number of elements in "IN" Clause, in Open SQL, is there any default number?
    Yes, there is a restriction and it differes between the different DBMS.
    Until recently you could have 2000 variables per statement with MaxDB.
    The current versions of DBSL and MaxDB Kernel now support up to 10000 variables per statement.
    Anyhow, in most cases, such a long in list can and should be avoided by using the FOR ALL ENTRIES construct. With this, the DBSL automatically splits the long IN list into smaller chunks and executes the statements several times.
    This is invisible to the ABAP report - it just gets the result set as usual.
    > P.S I didn't find any other appropriate place to post this thread, let me know the correct categorization of Open SQL in case its wrong.
    I guess in anyone of the DB forums is Ok.
    regards,
    Lars

  • Support for Case Insensitive Search and IN Clause in Open SQL

    Hi,
    I have some doubts regarding Open SQL:
    - Is there any support for Case Insensitive Search in Open SQL, is it availabe by default?
    - Is there any restriction on number of elements in "IN" Clause, in Open SQL, is there any default number?
    I have checked the [Open SQL Grammer |http://help.sap.com/saphelp_nwce711/helpdata/en/9b/f46cabaa874bc9a82234e8cf1d0696/frameset.htm]also, but nothing found there.
    Thanks,
    Piyush
    P.S I didn't find any other appropriate place to post this thread, let me know the correct categorization of Open SQL in case its wrong.

    No cross posting.
    Read the "Rules of Engagement"
    Regards
    Juan

  • Error in a report after enabling case insensitive search in conn pool prop

    Hi All,
    I put the below code in connection pool's connection string to enable case insensitive search.
    alter session set NLS_SORT=BINARY_CI
    alter session set NLS_COMP=LINGUISTIC
    After putting this code one of my report started giving the below error which was working fine otherwise.
    Error Codes: OPR4ONWY:U9IM8TAC:OI2DL65P
    State: HY000. Code: 10058. NQODBC SQL_STATE: HY000 nQSError: 10058 A general error has occurred. nQSError: 16001 ODBC error state: S1000 code: 1791 message: OracleODBCOraORA-01791: not a SELECTed expression. nQSError: 16001 ODBC error state: S1000 code: 1791 message: OracleODBCOraORA-01791: not a SELECTed expression. nQSError: 16015 SQL statement execution failed. (HY000)
    The report gives error for the below divide condition when I select a column from a different dimension (eg: region)
    COUNT(DISTINCT RMA.RMA)/COUNT(DISTINCT User."User Name")
    Can anyone please throw a light why this is happening.

    Below is the SQL which is throwing error in OBIEE. It was working fine when I tried running it in toad:
    select T1609.ATTRIB_05 as c1,
    count(distinct T1609.ATTRIB_42) as c2,
    TRUNC(T1159.FSCL_WEEK_START_DT) as c3
    from
    WC_DAY_D T1159 /* RMA_RECEIVED_DT(WC_DAY_D) */ ,
    WC_RMA_D T571,
    WC_FV_FA_D T1609,
    WC_FV_FA_F T1679
    where ( T571.ROW_WID = T1679.RMA_WID and T1159.ROW_WID = T1679.RMA_RECEIVED_WID and T1609.ROW_WID = T1679.FV_FA_WID and T1609.ATTRIB_39 <> 'FV' and (T571.STATUS_CD in ('2nd FA', '2nd FA Review', 'Closed')) and TRUNC(T1609.TODO_ACTL_END_DT) is not null and TRUNC(T1159.FSCL_WEEK_START_DT) between TIMESTAMP '2009-03-22 00:00:00' and TIMESTAMP '2009-04-12 00:00:00' )
    group by T1609.ATTRIB_05, TRUNC(T1159.FSCL_WEEK_START_DT)
    order by c3
    -------------------- Query Status: Query Failed: [nQSError: 16001] ODBC error state: S1000 code: 1791 message: [Oracle][ODBC][Ora]ORA-01791: not a SELECTed expression.
    [nQSError: 16001] ODBC error state: S1000 code: 1791 message: [Oracle][ODBC][Ora]ORA-01791: not a SELECTed expression.
    [nQSError: 16015] SQL statement execution failed.

  • Case INSENSITIVE Columns on Oracle

    Hello Friends,
    Good Monday for everyone....
    I would like to ask you guys if there is a way to create a case INSENSITIVE Columns on Oracle. I used on Sqlserver before the COLLATE sintax, and I was able to make a columns (just that one) INSENSITIVE.
    I'm using oracle 10gr2 on Windows plataform and herte is my nls_parameters. My ideia is to search on this column without the need of performing a function UPPER and LOWER and etc...
    NLS_LANGUAGE BRAZILIAN PORTUGUESE
    NLS_TERRITORY BRAZIL
    NLS_CURRENCY Cr$
    NLS_ISO_CURRENCY BRAZIL
    NLS_NUMERIC_CHARACTERS ,.
    NLS_CALENDAR GREGORIAN
    NLS_DATE_FORMAT DD/MM/RR
    NLS_DATE_LANGUAGE BRAZILIAN PORTUGUESE
    NLS_CHARACTERSET WE8MSWIN1252
    NLS_SORT WEST_EUROPEAN
    NLS_TIME_FORMAT HH24:MI:SSXFF
    NLS_TIMESTAMP_FORMAT DD/MM/RR HH24:MI:SSXFF
    NLS_TIME_TZ_FORMAT HH24:MI:SSXFF TZR
    NLS_TIMESTAMP_TZ_FORMAT DD/MM/RR HH24:MI:SSXFF TZR
    NLS_DUAL_CURRENCY Cr$
    NLS_NCHAR_CHARACTERSET AL16UTF16
    NLS_COMP BINARY
    NLS_LENGTH_SEMANTICS BYTE
    NLS_NCHAR_CONV_EXCP FALSE
    tks a lot
    Keen

    APC wrote:
    No, they mean a setting which makes "APC" or "apc" match "Apc".
    There is nothing to be done on 10g, other than building a function based index on the column in question, so that any UPPER() searches are optimized.
    Well, as Kamran Agayev already noted CI is available in 10g too. It also worth mentioning FBI creates a hidden column. Also, your statement
    In 11g we have the option to set the NLS_SORT parameter so that any searches are case-insensitive (or indeed accent insensitive). Find out more.
    is incomplete. NLS_SORT affects nothing but sort:
    SQL> connect scott
    Enter password: *****
    Connected.
    SQL> select * from v$version
      2  /
    BANNER
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Prod
    PL/SQL Release 10.2.0.4.0 - Production
    CORE    10.2.0.4.0      Production
    TNS for 32-bit Windows: Version 10.2.0.4.0 - Production
    NLSRTL Version 10.2.0.4.0 - Production
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    order by name
    12  /
    NAM
    Joe
    Max
    Sam
    joe
    max
    sam
    6 rows selected.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name = 'max'
    12  /
    NAM
    max
    SQL> alter session set nls_sort = binary_ci
      2  /
    Session altered.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    order by name
    12  /
    NAM
    Joe
    joe
    max
    Max
    Sam
    sam
    6 rows selected.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name = 'max'
    12  /
    NAM
    max
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name like 'm%'
    12  /
    NAM
    max
    SQL> select 'Max' name from dual union
      2  select 'max' name from dual
      3  /
    NAM
    Max
    max
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  distinct name
    10    from  t
    11  /
    NAM
    sam
    Joe
    joe
    max
    Sam
    Max
    6 rows selected.
    SQL> As you can see, NLS_SORT alone works on sort but not on "searches". We also need to set NLS_COMP, which by default is BINARY. Prior to 10g R2 (I am not 100% sure, it could be prior 10g), the only NLS_COMP choice, besides BINARY, was ANSI. However, ANSI does not work with all comparison operators (e.g. does not work for LIKE, UNION, DISTINCT):
    SQL> alter session set nls_sort = binary_ci
      2  /
    Session altered.
    SQL> alter session set nls_comp=ansi
      2  /
    Session altered.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    order by name
    12  /
    NAM
    Joe
    joe
    max
    Max
    Sam
    sam
    6 rows selected.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name = 'max'
    12  /
    NAM
    Max
    max
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name like 'm%'
    12  /
    NAM
    max
    SQL> select 'Max' name from dual union
      2  select 'max' name from dual
      3  /
    NAM
    Max
    max
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  distinct name
    10    from  t
    11  /
    NAM
    sam
    Joe
    joe
    max
    Sam
    Max
    6 rows selected.
    SQL> Starting 10g R2 NLS_COMP can be set to LINGUISTIC, which will also work for LIKE and UNION but not for DISTINCT:
    SQL> alter session set nls_sort = binary_ci
      2  /
    Session altered.
    SQL> alter session set nls_comp=linguistic
      2  /
    Session altered.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    order by name
    12  /
    NAM
    Joe
    joe
    max
    Max
    Sam
    sam
    6 rows selected.
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name = 'max'
    12  /
    NAM
    Max
    max
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  name
    10    from  t
    11    where name like 'm%'
    12  /
    NAM
    Max
    max
    SQL> select 'Max' name from dual union
      2  select 'max' name from dual
      3  /
    NAM
    Max
    SQL> with t as (
      2             select 'Max' name from dual union all
      3             select 'sam' name from dual union all
      4             select 'Joe' name from dual union all
      5             select 'max' name from dual union all
      6             select 'joe' name from dual union all
      7             select 'Sam' name from dual
      8            )
      9  select  distinct name
    10    from  t
    11  /
    NAM
    sam
    Joe
    joe
    max
    Sam
    Max
    6 rows selected.
    SQL> However even LINGUISTIC does not work with:
    • CLOB or NCLOB data types
    • Object data types
    • Table partitions
    • Index-organized tables
    SY.

  • Case Insensitive Search coupled with "LIKE" operator.

    Greetings All, I am running Oracle 11gR1 RAC patchet 25 on Windows X64.
    This db supports and application that requires case insensitive searches.
    Because there are a few entry points into the db I created an "after login" trigger:
    CREATE OR REPLACE TRIGGER MyAppAfterLogon_TRGR
    AFTER LOGON
    ON DATABASE
    DECLARE
    vDDL VARCHAR2(200) := 'alter session set nls_comp=''linguistic''';
    vDDL2 VARCHAR2(200) := 'alter session set nls_sort=''binary_ci''';
    BEGIN
    IF ((USER = 'MyAppUSER') OR(USER = 'MyAppREPORTINGUSER')) THEN
    EXECUTE IMMEDIATE vDDL;
    EXECUTE IMMEDIATE vDDL2;
    END IF;
    END MyAppAfterLogon_TRGR;
    This ensures that everyone connecting to the DB via any mechanism will automatically have case insensitive searches.
    Now, to optimize the know queries I created the standard index to support normal matching queries:
    select * from MyTable where Name = 'STEVE';
    The index looks like:
    CREATE INDEX "CONTACT_IDX3 ON MYTABLE (NLSSORT("NAME",'nls_sort=''BINARY_CI'''))
    This all works fine, no issues.
    The problem is when I write a query that uses the "LIKE" operator:
    select * from MyTable where Name like 'STEV%';
    I get back the record set I expect. However, my index is not used? I can't for the life of me get this query to use an index.
    The table has about 600,000 rows and I have run gather schema stats.
    Does anyone know of any issues with case insensitive searches and the "LIKE" clause?
    Any and all help would be appreciated.
    L

    I think there is issue with your logon trigger :
    "IF ((USER = 'MyAppUSER') OR(USER = 'MyAppREPORTINGUSER')) THEN"
    it should be :
    IF UPPER(USER) = 'MYAPPUSER' OR UPPER(USER) = 'MYAPPREPORTINGUSER' THEN
    because user name stored in Upper case. Check and try.
    HTH
    Girish Sharma

  • Case insensitive search working in dev but not in prod

    Hello All,
    I had set the CASE_SENSITIVE_CHARACTER_COMPARISON parameter as OFF in NQSConfig.ini file for enabling the case insensitive search in OBIEE.
    This setup is letting me do the case insensitive search in Dev env but the same doesnt work in prod env. I tried pointing both prod and dev rpd to same prod db.
    With same db also, case insensitive search doesnt work in prod env.
    Any idea for which other configuration I can look for.
    Thanks in advance.

    Thanks Stijin. I had seen this post earlier. Case insensitive search works fine after setting the value for NLS_SORT and NLS_COMP in production RPD but the other report with distinct clause starts failing. Not sure about the reason.
    Saw this comment from you in that post:
    The only compromise solution we could find was to "cache" the column value we wanted to use in insensitive searches. These were mainly used in "show all choices" while setting prompts. Other than that there isn't much you can do in an Oracle database.
    Can you please tell me how to implement the above.

  • Case-Insensitive Searching on Content Server

    Hello everyone,
    I have a Content Server 10gr3 using an Oracle 11g DB. All of my searches are case sensitive, but we need case-insensitive searching. I've tried changing the DatabasePreserveCase variable in the config.cfg to 1, 0, true, and false, rebuilt the indexes in between each reboot (not sure if that's necessary or not), tried checking in new documents after making the changes and searching for those, but no matter, searches stay case sensitive.
    We have another UCM install running on a 10.2.0.3.0 DB, and case insensitivity works on that Content Server with DatabasePreserveCase=1.
    What could we be doing wrong? I've found several documents which have stated that case-insensitivity is impossible with an Oracle DB, but I think those are all old and from before Oracle's acquisition of the product (and obviously it is possible, since we have another install with it working).
    Thanks in advance for any help you can give!

    I'm not quite sure what you mean by Search Engine... we simply installed the Oracle 11g Database, then installed Content Server and configured it to run using that database. We haven't done anything with full-text search.
    Edit: Do you mean the SearchIndexerEngineName value in the config file? It's DATABASE.METADATA, though at some point we also need to get full-text up and running which to my understanding requires it to be DATABASE.FULLTEXT.
    As to the OracleCaseInsensitiveSearch component, where can I find it? Google shows up nothing, and MetaLink has one page saying that it exists but nothing more...
    Message was edited by:
    user573973

  • Case-insensitive Search with Search Form

    I am using a Search Form with a UIX Page. One of the issue that need to be resolved is to be able to do case-insensitive search for text information stored in some database columns. Please advise me how to implement case_insensitive search with JDeveloper's Search Form.
    Thanks in advance,

    Hi Qian,
    This article (below) by Steve Muench explains how you can customize Query by example behaviour of ADF BCs and if you really want, how to create your own ViewCriteriaAdapter (but you don't have to go quite that far - luckily :) ).
    http://radio.weblogs.com/0118231/2005/02/10.html#a492
    Here is what I did. I implemented the following method in my base view object class (MyBaseViewObject). Note that this code is based on a piece of code that Steve posted on his blog (http://radio.weblogs.com/0118231/stories/2003/07/11/implementingAViewCriteriaAdapterToCustomizeQueryByExampleFunctionality.html); originally an example about creating your own ViewCriteriaAdapter.
    Since applyViewCriteria(oracle.jbo.ViewCriteria) is used by the query-by-example mechanism you're able to "intercept" the ViewCriteria on "it's way in". After that the standard ViewCriteria does it's job as ususal and generated the where clause when required.
    public void applyViewCriteria(ViewCriteria vc)
         if( null == vc || vc.size() == 0 ) super.applyViewCriteria(vc);
         ViewCriteriaRow criteriaRow = (ViewCriteriaRow)vc.first();
         StructureDef def = criteriaRow.getStructureDef();
         AttributeDef[] attrs = def.getAttributeDefs();
         System.out.println(getClass().getName() + ": applyViewCriteria()");
         boolean bFirst = true;
         do{
           if(vc.hasNext() && !bFirst) criteriaRow = (ViewCriteriaRow)vc.next();
           criteriaRow.setUpperColumns(true);
           for (int j = 0, attrCt = attrs.length; j < attrCt; j++)
             String criteriaAttrVal = ((String)criteriaRow.getAttribute(j));
             if (criteriaAttrVal != null && !criteriaAttrVal.equals("") && !JboTypeMap.isNumericType(attrs[j].getSQLType()))
              criteriaRow.setAttribute(j,criteriaAttrVal.toUpperCase());
           bFirst=false;
         }while(vc.hasNext());
         super.applyViewCriteria(vc);
    NOTE that doing this makes all your views case insensitive (to vc search) you may want to implement more functionality in your base view object to set whether a view is in case insensitive mode or not.
    ALSO that flag will not be passivated (if I remember correctly - someone correct me if I'm wrong) so you'll have to add that flag to the passivated data.
    Cheers!
    Sacha

  • Case-insensitive searches on lob

    Hi,
    I work with oracle 10 on linux.
    I have a table with clob.
    I need to do case-insensitive searches on this field.
    How can I do? I can't use upper or lower function.

    Yes, you can :
    SQL> desc PS_RC_SOL_PRODSRCH
    Name                                      Null?    Type
    SETID                                     NOT NULL VARCHAR2(5 CHAR)
    SOLUTION_ID                               NOT NULL NUMBER(15)
    PROD_DESCRLONG                                     CLOB
    SQL> select setid,PROD_DESCRLONG
      2  from   PS_RC_SOL_PRODSRCH
      3  where dbms_lob.instr(lower(PROD_DESCRLONG),'n') > 0
      4  and   rownum<3;
    SETID
    PROD_DESCRLONG
    NLCOM
    |NLC0001|Benefits|
    NLCOM
    |NLC0001|Benefits|Nicolas.

Maybe you are looking for