Mapping with case insensitivity in Filter operator expression

I need to import data from an ODS into DW table.
How can I set this before a certain mapping is run to make it case insensitive?
execute immediate 'alter session set NLS_SORT=BINARY_CI';
execute immediate 'alter session set NLS_COMP=LINGUISTIC';
Thanks,
JGP

Hi,
Use upper(column) in the filter expression.
Regards
Bharath

Similar Messages

  • Mapping a CASE constraint gives error:The expression is not properly formed

    Hi
    I am hoping someone can help us with this as we cannot find it in the usual places:
    I have the following WHERE clause in my query:
    WHERE xd.cii_owner_account_id = hca.cust_account_id
    AND incidentb.incident_status_id = incident_status.incident_status_id
    AND incident_number = xd.sr_number
    AND ( (CASE
    WHEN buyout_immediate_flag <> 'Immediate'
    THEN '-'
    END) = '-'
    OR (CASE
    WHEN buyout_immediate_flag = 'Immediate'
    THEN incident_status.NAME
    END
    ) LIKE '%Authorised%'
    OR (CASE
    WHEN buyout_immediate_flag = 'Immediate'
    THEN incident_status.NAME
    END
    ) LIKE '%IT Appro%'
    We are unsure how to map the CASE expression and where it is meant to go. Possibly in the join ? Or expression compaonent. Problem is that both do not allow for CASE statements.
    Please advise.

    Hi there
    Please can you clarify this because I am unsure where the expression operator would go in my example. You see, the CASE is seperate for each part of my clause and the CASE is what gives the left hand side of the WHERE statement in each line whereas the right hand side is written outside of the CASE.
    I hope you understand what I mean, if not let me know and I will try to clarify it for you.
    Thanks

  • Intermittent oracle errors with case-insensitive searches

    Hi
    I have a table with several columns, two of them are indexed with oracle text.
    When I ask queries containing "CONTAINS"-clauses against these columns everything works great. However I have a few other columns in table that I want to run case-insensitive comparisons with.
    So I enable case-insensitivity:
    ALTER SESSION SET NLS_COMP=LINGUISTIC
    ALTER SESSION SET NLS_SORT=BINARY_CI
    Now I suddenly start getting intermittent errors.
    When I call a query:
    SELECT
    FROM
    article_table at
    WHERE
    CONTAINS(searchfield , '%MEAT%') > 0
    Sometimes it works, but sometimes I get:
    ERROR
    ORA-29902: ett fel inträffade när rutinen ODCIIndexStart() kördes
    ORA-20000: Oracle Text error:
    DRG-00100: internal error, arguments : [50935],[drpn.c],[1051],[],[]
    DRG-00100: internal error, arguments : [50935],[drpnw.c],[601],[],[]
    DRG-00100: internal error, arguments : [51002],[drwa.c],[594],[],[]
    DRG-00100: internal error, arguments : [51028],[drwaw.c],[297],[0],[%MEAT%]
    DRG-00100: internal error, arguments : [50401],[dreb.c],[1033],[],[]
    ORA-00600: intern felkod, argument: [qernsRowP], [1], [], [], [], [], [], []
    Anyone knows what is going on? Is this bug? Is there a fox for it?
    Thanks for any help anyone can provide.
    /Kjell

    Clearly that's a bug. Unless anyone here recognizes it and can point you to the bug/patch number I would strongly recomend you to take it to oracle support.
    Incidently, doing a search for '%MEAT%' is usually a bad idea. Leading wildcards will disable the use of the index on the $I table, so unless you're using the SUBSTRING_INDEX option such searches will usually perform very badly. They shouldn't cause "internal errors", of course.

  • Jbo:DataQuery with case insensitive search

    I'm working on a BC4J JSP project. I cannot find a way to search in the case insensitive mode. I'm using JDeveloper 9.0.3.1. I looked in the DataQueryComponent.jsp, the xxxx_Query.jsp, and all the files generated under the ViewObject to find a way to accomplish this but no luck. Please advise. Thank you.

    For those who e-mailed me about this question and you who are searching an answer for this question, here is the solution.
    I added some codes in DataQueryComponent.jsp. I put the following codes right after the closing of the "Add Criteria" jbo:OnEvent. It works for me and it will work for you.
    <jbo:OnEvent name="Search" >
    <% String rowParam = params.getParameter("nRows");
    int nCriteria = 0;
    if (rowParam != null)
    try {
    nCriteria = Integer.parseInt(rowParam);
    catch (Exception ex) { }
    %>
    <jbo:ViewCriteria id="vc" datasource="ds" action="new">
    <% for (int i=0; i < nCriteria-1; i++)
    { %>
    <jbo:CriteriaRow id="row<%=i%>" uppercolumns="true">
    <jbo:AttributeIterate id="attrvc" datasource="ds" queriableonly="true">
    <% String item = attrvc.getName();
    String value = params.getParameter("row" + i + "_" + item);
    value = value.toUpperCase(); %>
    <jbo:Criteria dataitem="<%=item%>" value="<%=value%>" />
    </jbo:AttributeIterate>
    </jbo:CriteriaRow>
    <%
    %>
    </jbo:ViewCriteria>
    </jbo:OnEvent>

  • Like Query with Case insensitive

    Hi ,
    I have select query with Like, need to add case insenstive for that.
    E.g
    Select * from emp where empname like ('D%').
    The above query will fetch only names starting with 'D' not the name starting with 'd'.But i need to fetch all the name starting with D or d. Can anyone help me out with this query.
    Thanks
    Durai

    Hi
    Use uppercase for example:
    Select * from emp where upper(empname) like ('D%');
    Ott Karesz
    http://www.trendo-kft.hu

  • 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 filter Feature in InputListOfValues Popup

    Dear all,
    I had taken reference in HRSystem (the tutorial provided by Oracle) ,
    [http://st-curriculum.oracle.com/obe/jdev/obe11jdev/ps1/ria_application/developriaapplication_long.htm]
    In section "Create a Page Flow" Step 19 popup
    You CAN "Search for Jobs whose jobTitle begins with A%. " but
    CANNOT "Search for Jobs whose jobTitle begins with a%. " (Lower case of A, no result returns)
    As we can filter the column with case insensitive by setting the filterfeature="caseInsensitive" in af:column
    I want to use this feature in this InputListOfValues popup.
    Anyone has ideas on that?
    Million Thanks!
    Luis

    Can anyone can give me suggestions?
    Thanks!

  • Rewrite sql to avoid filter operation

    Hi All,
    I found below sql and some more sql's causing high CPU usage.
    SELECT :B1 AS ID ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL
                                 FROM ONS
                                 WHERE PARENT_ID = :B1 )), 1, 1, 0) AS IP_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL
                                 FROM ONS
                                 WHERE ULTIMATE_PARENT_GID = :B1 )), 1, 1, 0) AS UP_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM AFFILIATIONS WHERE AFFILIATED_ID= :B1 )), 1, 1, 0) AS AFF_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM JOINT_VENTURES WHERE JOINT_VENTURE_ID= :B1 )), 1, 1, 0) AS JV_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM SUCCESSORS WHERE SUCCESSOR_ID= :B1 )), 1, 1, 0) AS SUC_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM COUNTERPARTY WHERE CP_TAX_AUTHORITY_ID = :B1 )), 1, 1, 0) AS TAX_AUTH_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM COUNTERPARTY WHERE CP_PRIM_REGULATOR_ID = :B1 )), 1, 1, 0) AS PRIM_REG_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM ONS WHERE DUPLICATE_OF_ID = :B1 )), 1, 1, 0) AS DUP_RELATION ,
           DECODE((SELECT 1
                   FROM DUAL
                   WHERE EXISTS (SELECT NULL FROM ONS WHERE REG_AUTHORITY_ID = :B1 )), 1, 1, 0) AS REG_AUTH_RELATION
    FROM DUAL
    | Id  | Operation             | Name                           | Rows  | Bytes | Cost (%CPU)| Time     |
    |   0 | SELECT STATEMENT      |                                |       |       |     2 (100)|          |
    |*  1 |  FILTER               |                                |       |       |            |          |
    |   2 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |*  3 |   INDEX RANGE SCAN    | IDX_IMMEDIATE_PARENT_ID        |     1 |     3 |     2   (0)| 00:00:01 |
    |*  4 |  FILTER               |                                |       |       |            |          |
    |   5 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |*  6 |   INDEX RANGE SCAN    | IDX_ULTIMATE_PARENT_ID         |     2 |     4 |     2   (0)| 00:00:01 |
    |*  7 |  FILTER               |                                |       |       |            |          |
    |   8 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |*  9 |   INDEX FAST FULL SCAN| PK_ORG_AFFILIATED_WITH         |     1 |     7 |   294   (7)| 00:00:04 |
    |* 10 |  FILTER               |                                |       |       |            |          |
    |  11 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |* 12 |   INDEX FULL SCAN     | PK_ORG_JOINT_VENTURE_OF        |     1 |     7 |     3   (0)| 00:00:01 |
    |* 13 |  FILTER               |                                |       |       |            |          |
    |  14 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |* 15 |   INDEX FAST FULL SCAN| PK_ONS_SUCCEEDED_BY            |     1 |     7 |    79   (7)| 00:00:01 |
    |* 16 |  FILTER               |                                |       |       |            |          |
    |  17 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |* 18 |   INDEX RANGE SCAN    | IDX_ORG_CP_TAX_AUTHORITY_ID    |     2 |    14 |     2   (0)| 00:00:01 |
    |* 19 |  FILTER               |                                |       |       |            |          |
    |  20 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |* 21 |   INDEX RANGE SCAN    | IDX_ORGCP_PRIM_REGULATOR_ID    |     1 |     4 |     2   (0)| 00:00:01 |
    |* 22 |  FILTER               |                                |       |       |            |          |
    |  23 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |* 24 |   TABLE ACCESS FULL   | ONS                            |     1 |     2 | 27013   (4)| 00:05:25 |
    |* 25 |  FILTER               |                                |       |       |            |          |
    |  26 |   FAST DUAL           |                                |     1 |       |     2   (0)| 00:00:01 |
    |* 27 |   TABLE ACCESS FULL   | ONS                            |     1 |     2 |   475   (3)| 00:00:06 |
    |  28 |  FAST DUAL            |                                |     1 |       |     2   (0)| 00:00:01 |
    Peeked Binds (identified by position):
       2 - :B1 (NUMBER, Primary=1)
       3 - :B1 (NUMBER, Primary=1)
       4 - :B1 (NUMBER, Primary=1)
       5 - :B1 (NUMBER, Primary=1)
       6 - :B1 (NUMBER, Primary=1)
       7 - :B1 (NUMBER, Primary=1)
       8 - :B1 (NUMBER, Primary=1)
       9 - :B1 (NUMBER, Primary=1)
      10 - :B1 (NUMBER, Primary=1)
    Predicate Information (identified by operation id):
       1 - filter( IS NOT NULL)
       3 - access("IMMEDIATE_PARENT_ID"=:B1)
       4 - filter( IS NOT NULL)
       6 - access("ULTIMATE_PARENT_ID"=:B1)
       7 - filter( IS NOT NULL)
       9 - filter("AFFILIATED_ID"=:B1)
      10 - filter( IS NOT NULL)
      12 - access("JOINT_VENTURE_ID"=:B1)
           filter("JOINT_VENTURE_ID"=:B1)
      13 - filter( IS NOT NULL)
      15 - filter("SUCCESSOR_ID"=:B1)
      16 - filter( IS NOT NULL)
      18 - access("CP_TAX_AUTHORITY_ID"=:B1)
      19 - filter( IS NOT NULL)
      21 - access("CP_PRIM_REGULATOR_ID"=:B1)
      22 - filter( IS NOT NULL)
      24 - filter("DUPLICATE_OF_ID"=:B1)
      25 - filter( IS NOT NULL)
      27 - filter("REG_AUTHORITY_ID"=:B1)Oracle Version : 10.2.0.4 RAC 2 nodes
    Is there any possibility to rewrite this sql to avoid filter operation.
    Please let me know if you need any more details....

    My bad..i overlooked the execution plan.
    Below execution plan has been extracted from devlopment database which is exact replica of production database.
    | Id  | Operation                 | Name                           | Starts | E-Rows | A-Rows |   A-Time   | Buffers | Reads  |
    |*  1 |  FILTER                   |                                |      1 |        |      1 |00:00:00.72 |    8028 |   5986 |
    |   2 |   FAST DUAL               |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    |   3 |   PARTITION RANGE ALL     |                                |      1 |      1 |      1 |00:00:00.72 |    8028 |   5986 |
    |*  4 |    TABLE ACCESS FULL      | ONS                            |      1 |      1 |      1 |00:00:00.72 |    8028 |   5986 |
    |*  5 |  FILTER                   |                                |      1 |        |      1 |00:00:00.19 |       7 |      0 |
    |   6 |   FAST DUAL               |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    |   7 |   PX COORDINATOR          |                                |      1 |        |      1 |00:00:00.19 |       7 |      0 |
    |   8 |    PX SEND QC (RANDOM)    | :TQ10000                       |      0 |      1 |      0 |00:00:00.01 |       0 |      0 |
    |   9 |     PX PARTITION RANGE ALL|                                |      0 |      1 |      0 |00:00:00.01 |       0 |      0 |
    |* 10 |      INDEX RANGE SCAN     | IDX_ULTIMATE_PARENT_ID         |      0 |      1 |      0 |00:00:00.01 |       0 |      0 |
    |* 11 |  FILTER                   |                                |      1 |        |      0 |00:00:00.11 |    1231 |      0 |
    |  12 |   FAST DUAL               |                                |      0 |      1 |      0 |00:00:00.01 |       0 |      0 |
    |* 13 |   INDEX FAST FULL SCAN    | PK_ORG_AFFILIATED_WITH         |      1 |      1 |      0 |00:00:00.11 |    1231 |      0 |
    |* 14 |  FILTER                   |                                |      1 |        |      0 |00:00:00.01 |       7 |      0 |
    |  15 |   FAST DUAL               |                                |      0 |      1 |      0 |00:00:00.01 |       0 |      0 |
    |* 16 |   INDEX FAST FULL SCAN    | PK_ORG_JOINT_VENTURE_OF        |      1 |      1 |      0 |00:00:00.01 |       7 |      0 |
    |* 17 |  FILTER                   |                                |      1 |        |      0 |00:00:00.02 |     229 |      0 |
    |  18 |   FAST DUAL               |                                |      0 |      1 |      0 |00:00:00.01 |       0 |      0 |
    |* 19 |   INDEX FAST FULL SCAN    | PK_ONS_SUCCEEDED_BY            |      1 |      1 |      0 |00:00:00.02 |     229 |      0 |
    |* 20 |  FILTER                   |                                |      1 |        |      1 |00:00:00.01 |       3 |      0 |
    |  21 |   FAST DUAL               |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    |* 22 |   INDEX RANGE SCAN        | IDX_CP_TAX_AUTHORITY_ID        |      1 |      2 |      1 |00:00:00.01 |       3 |      0 |
    |* 23 |  FILTER                   |                                |      1 |        |      1 |00:00:00.01 |       3 |      0 |
    |  24 |   FAST DUAL               |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    |* 25 |   INDEX RANGE SCAN        | IDX_CP_PRIM_REGULATOR_ID       |      1 |      1 |      1 |00:00:00.01 |       3 |      0 |
    |* 26 |  FILTER                   |                                |      1 |        |      1 |00:00:02.20 |   28923 |  21562 |
    |  27 |   FAST DUAL               |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    |  28 |   PARTITION RANGE ALL     |                                |      1 |      1 |      1 |00:00:02.20 |   28923 |  21562 |
    |* 29 |    TABLE ACCESS FULL      | ONS                            |      1 |      1 |      1 |00:00:02.20 |   28923 |  21562 |
    |* 30 |  FILTER                   |                                |      1 |        |      1 |00:00:00.01 |       4 |      5 |
    |  31 |   FAST DUAL               |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    |  32 |   PARTITION RANGE ALL     |                                |      1 |      1 |      1 |00:00:00.01 |       4 |      5 |
    |* 33 |    TABLE ACCESS FULL      | ONS                            |      1 |      1 |      1 |00:00:00.01 |       4 |      5 |
    |  34 |  FAST DUAL                |                                |      1 |      1 |      1 |00:00:00.01 |       0 |      0 |
    Predicate Information (identified by operation id):
       1 - filter( IS NOT NULL)
       4 - filter("IMMEDIATE_PARENT_ID"=:B1)
       5 - filter( IS NOT NULL)
      10 - access("ULTIMATE_PARENT_ID"=:B1)
      11 - filter( IS NOT NULL)
      13 - filter("AFFILIATED_ID"=:B1)
      14 - filter( IS NOT NULL)
      16 - filter("JOINT_VENTURE_ID"=:B1)
      17 - filter( IS NOT NULL)
      19 - filter("SUCCESSOR_ID"=:B1)
      20 - filter( IS NOT NULL)
      22 - access("CP_TAX_AUTHORITY_ID"=:B1)
      23 - filter( IS NOT NULL)
      25 - access("CP_PRIM_REGULATOR_ID"=:B1)
      26 - filter( IS NOT NULL)
      29 - filter("DUPLICATE_OF_ID"=:B1)
      30 - filter( IS NOT NULL)
      33 - filter("REG_AUTHORITY_ID"=:B1)It took just 2.20 seconds, but why does it causes more CPU resource ?
    We are about to plugin new module in this database, hence ONS table is partitioned, its partitioned on column PROVIDER which seperates existing and new module in to different partitions which makes easier for loading wihout affecting existing module data(We also make about to load partition local indexes to unusable state). Also this table is the parent table for about 6 child tables. So we decided to partition even child tables by adding PROVIDER column to all child tables and partition on this column. Parent-Child relationship is built upon ID column in all the tables.
    All the sql's will be altered to use PROVIDER column for filtering old and new module data.
    Do you think we are in right approach, I would be thankful if you can help me here for precise designing of this table.
    As a side thought - and one I would have to investigate - since you have declared a number of inddexes with "case insensitive sorting" - is is possible that you could work around this idea to drop a few of the existing indexes on "lower(column)" and use case-insensitive indexes for these comparisons ?Will test it in development database, but what is the performance improvement prediction? And please let me know your suspects which claims "lower(column)" should be avoided and use case-insensitive indexes.
    Anyway we are implementing Text-Index on this table and drop all the unwanted indexes.
    I've written a short note on my blog about the "exists subquery" and the varying cost of the tablescane linesI am regular reader of your blog, after seeing your test case i understood the concept crystal clear. Thanks a lot....

  • 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

  • How do I make Merge operation into the target table case insensitive?

    Hi All,
    We have a target table that has a varchar 2 column called nat_key and a map that copies over data from a source table into the target table.
    Based on wheteher the values in the nat_key column matches between the source and the target, an update or an insert has to be done into the target table.
    Let us say target table T has the following row
    nat_key
    EQUIPMENT
    Now, my source table has the same in a different case
    nat_key
    equipment
    I want these rows to be merged .
    In the OWB map, I have given the property of nat_key column in the target table as 'Match while updating' = 'Yes'. Is there a built in feature in OWB, using which I can make this match as case insensitive?
    Basically, I want to make OWB generate my mapping code as
    if UPPER(target. nat_key)=upper(source.nat_key) then update...else insert.
    Note: There is a workaround with 'Alter Session set nls_sort=binary_ci and nls_comp=linguistic', but this involves calling a pre-mapping operator to set these session parameters.
    Could anyone tell me if there is a simpler way?

    Hi,
    use an expression operator to get nat_key in upper case. Then use this value for the MERGE. Then nat_key will only be stored in upper case in your target table.
    If you have historic data in the target table you have to update nat_key to upper case. This has to be done only once and is not necessary if you start with an empty target table.
    Regards,
    Carsten.

  • Search on text with diacritic, and case insensitive

    Hello to all,
    I'm using this condition in a query on XML:
    field[contains(@value, "gangesa" )
    If @value= 'Gaṅgeśa' I'd like to get this record also by using the word: "gangesa" So I need to map:
    ṅ = n
    ś = s
    And do it in case insensitive. Somebody can help me?
    Thank you,
    Cristian                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

    ALTER SESSION SET NLS_COMP=LINGUISTIC;
    ALTER session set nls_sort='binary_ai'; -->accent insensitive
                 binary_ci -->case insensitive.
    with t as
    (select 'Gageśa' col1 from dual union all
    select 'GAgEśa'  from dual union all
    select 'gagEśA'  from dual union all
    select 'not Gageśa' from dual
    select * from t where col1 like '%gagesa';
    Gagesa
    GAgEsa
    gagEsA
    not Gagesaand do the search.
    Edited by: PhoenixBai on Aug 25, 2010 10:14 PM

  • How to use filter operator with ROWNUM

    I would like to add filter operator in my mapping with ROWNUM to reduce the ETL loading time during testing to ensure mapping is working, but I don't know how, please help provide me some guideline. Thank you.

    what is your owb version?
    Starting with Oracle Warehouse Builder 10.2.0.3, you can use the pseudocolumns ROWID and ROWNUM in mappings. The ROWNUM pseudocolumn returns a number indicating the order in which a row was selected from a table. The ROWID pseudocolumn returns the rowid (binary address) of a row in a database table.
    You can use the ROWID and ROWNUM pseudocolumns in Table, View, and Materialized View operators in a mapping. These operators contain an additional column called COLUMN USAGE that is used to identify attributes used as ROWID or ROWNUM. For normal attributes, this column defaults to TABLE USAGE. To use an attribute for ROWID or ROWNUM values, set the COLUMN USAGE to ROWID or ROWNUM respectively.
    You can map a ROWID column to any attribute of data type ROWID, UROWID, or VARCHAR2. You can map ROWNUM column to an attribute of data type NUMBER or to any other data type that allows implicit conversion from NUMBER.
    Note that ROWID and ROWNUM pseudocolumns are not displayed in the Data Object Editor since they are not real columns.
    Edited by: Darthvader-647181 on Oct 29, 2008 9:18 AM

  • Case insensitive selects with 'like'

    I use a 10g database (10.2.0.2 same behaviour with 10.2.0.1). What we want is case insensitive selects with 'like' operator in the where clause. NLS_COMP is set to 'LINGUISTIC' and NLS_SORT is set to 'BINARY_CI.
    In a table we have two columns one of type 'varchar2' one of type 'nvarchar2'. The databases national character set is set to UTF8. Case insensitive sorting works with both columns. Select statements with '.... where varchar2col like '%r%' returns also values with upper case 'R' values (that is what I expect).
    The select statements with '.... where nvarchar2col like '%r%' however does not return the row with upper case 'R' values.
    I used SQL*Plus: Release 10.2.0.3.0 and other clients and the behaviour is the same so
    I think it is not client related.
    Is that a known issue or is there any other parameter to set for UTF8 nvarchar columns?
    Any hint is very much appreciated! Here are the nls settings in database, instance and session:
    DPARAMETER      DVALUE IVALUE SVALUE
    NLS_CHARACTERSET WE8ISO8859P1
    NLS_COMP      BINARY LINGUISTIC LINGUISTIC
    NLS_LANGUAGE      AMERICAN AMERICAN AMERICAN
    NLS_NCHAR_CHARACTERSET UTF8
    NLS_RDBMS_VERSION 10.2.0.1.0
    NLS_SORT BINARY BINARY_CI BINARY_CI
    NLS_TERRITORY      AMERICA AMERICA AMERICA

    OK. Found out what the problem is. It is obviously the client.
    While using the instant client and setting the parameters (NLS_SORT=BINARY_CI and NLS_COMP=LINGUISTIC) as environment variables does not work correctly, at least not for nvarchar2 fields. The nls_session_parameters show the correct values, but selects with 'like' operators in the where clause do not return case insensitive. Issuing the 'alter session' commands and again setting the nls parameters solves the problem.
    Using the full client installation also works, in case the parameters are set in the registry on windows systems. With the full client it it not necessary to issue the 'alter session' commands again.
    So obviously the problem is instant client and nvarchar2 field related. That's too bad....

  • Mapping with Scd operator set to type 2 reading source records two times

    Mapping with Scd operator set to type 2 reading source records two times.Records selected count being displayed at the end of execution is double the source record count.This possibly is affecting the performance of the mapping.
    Is this a bug in scd type 2 operagtor in OWB 11gR2.How to rectify this umwamted double loop through the source data selectiom?

    Hi Roelant,
    I think it is important to be aware that although Paris - 10gR2 - is not actually buggy (in this respect!), it is really quite idiosyncratic in exactly how it processes SCDs.
    I followed up on your and Mark's comments, and did an in depth analysis of this topic. It is at http://www.donnapkelly.pwp.blueyonder.co.uk/documents/OWB_10gR2_SCD.pdf
    My conclusions are perhaps of interest to anyone considering doing SCD processing with Paris.
    I'll be doing a follow-up this weekend, and publishing a sort of 'how-to-do-it' guide.
    Cheers,
    Donna
    Message was edited to add the words: "in this respect"

  • Case Insensitive Search for the Dashboard Prompt Filter

    Hi,
    Can anyone help me, how to make dashboard propmt filter to be case insensitive, as of now dashboard propmts are case sensitive by default. How can we achieve this? Any help on this will be appreciated. TIA

    I wonder if it can be done. don't know if there's any work-around for it.
    Generally, the data that is imported into the SOD system is case sensitive hence the field on which you base your prompt will also be case sensitive.

Maybe you are looking for