Query returning unexpected results.

Hi,
One of our query which use to run successfully is suddenly failing in one of the environment. Oracle Version: 11.2.0.2.0. Can someone please suggest me why the query is not behaving as expected and works fine when using hint?
The below query doesn't return any rows.
select ctran.* from f_transaction_released tran, F_CHARGE_CODE_RELEASED CTRAN where
id_liability_cif in ('727873','141515') and  TRAN.ID_TRANSACTION_RELEASED = CTRAN.ID_TRANSACTION_RELEASED The same query with hint return rows.
select /*+ optimizer_features_enable('9.2.0.8') */ ctran.* from f_transaction_released tran, F_CHARGE_CODE_RELEASED CTRAN where
id_liability_cif in ('727873','141515') and  TRAN.ID_TRANSACTION_RELEASED = CTRAN.ID_TRANSACTION_RELEASED Explain plan of both the queries are:
1st Query:
Plan hash value: 196119809
| Id  | Operation                                 | Name                       | Rows  | Bytes | Cost (%CPU)| Time     | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
|   0 | SELECT STATEMENT                          |                            |   750 | 96000 |   551   (1)| 00:00:07 |       |       |        |      |            |
|   1 |  PX COORDINATOR                           |                            |       |       |            |          |       |       |        |      |            |
|   2 |   PX SEND QC (RANDOM)                     | :TQ10001                   |   750 | 96000 |   551   (1)| 00:00:07 |       |       |  Q1,01 | P->S | QC (RAND)  |
|*  3 |    HASH JOIN                              |                            |   750 | 96000 |   551   (1)| 00:00:07 |       |       |  Q1,01 | PCWP |            |
|   4 |     BUFFER SORT                           |                            |       |       |            |          |       |       |  Q1,01 | PCWC |            |
|   5 |      PX RECEIVE                           |                            |   444 |  5328 |   330   (0)| 00:00:04 |       |       |  Q1,01 | PCWP |            |
|   6 |       PX SEND BROADCAST                   | :TQ10000                   |   444 |  5328 |   330   (0)| 00:00:04 |       |       |        | S->P | BROADCAST  |
|   7 |        PARTITION RANGE ALL                |                            |   444 |  5328 |   330   (0)| 00:00:04 |     1 |    96 |        |      |            |
|   8 |         INLIST ITERATOR                   |                            |       |       |            |          |       |       |        |      |            |
|   9 |          TABLE ACCESS BY LOCAL INDEX ROWID| F_TRANSACTION_RELEASED     |   444 |  5328 |   330   (0)| 00:00:04 |     1 |    96 |        |      |            |
|  10 |           BITMAP CONVERSION TO ROWIDS     |                            |       |       |            |          |       |       |        |      |            |
|* 11 |            BITMAP INDEX SINGLE VALUE      | F_TRANSACTION_RELEASE_BMX9 |       |       |            |          |     1 |    96 |        |      |            |
|  12 |     PX BLOCK ITERATOR                     |                            |  7579K|   838M|   219   (1)| 00:00:03 |     1 |     3 |  Q1,01 | PCWC |            |
|* 13 |      TABLE ACCESS FULL                    | F_CHARGE_CODE_RELEASED     |  7579K|   838M|   219   (1)| 00:00:03 |     1 |     3 |  Q1,01 | PCWP |            |
Predicate Information (identified by operation id):
   3 - access("TRAN"."ID_TRANSACTION_RELEASED"="CTRAN"."ID_TRANSACTION_RELEASED")
  11 - access("ID_LIABILITY_CIF"=141515 OR "ID_LIABILITY_CIF"=727873)
  13 - filter(SYS_OP_BLOOM_FILTER(:BF0000,"CTRAN"."ID_TRANSACTION_RELEASED"))2nd query:
Plan hash value: 4037684686
| Id  | Operation                                 | Name                       | Rows  | Bytes | Cost  | Pstart| Pstop |    TQ  |IN-OUT| PQ Distrib |
|   0 | SELECT STATEMENT                          |                            |     2 |   256 |   299 |       |       |        |      |            |
|   1 |  PX COORDINATOR                           |                            |       |       |       |       |       |        |      |            |
|   2 |   PX SEND QC (RANDOM)                     | :TQ10002                   |     2 |   256 |   299 |       |       |  Q1,02 | P->S | QC (RAND)  |
|*  3 |    HASH JOIN BUFFERED                     |                            |     2 |   256 |   299 |       |       |  Q1,02 | PCWP |            |
|   4 |     BUFFER SORT                           |                            |       |       |       |       |       |  Q1,02 | PCWC |            |
|   5 |      PX RECEIVE                           |                            |     1 |    12 |   203 |       |       |  Q1,02 | PCWP |            |
|   6 |       PX SEND HASH                        | :TQ10000                   |     1 |    12 |   203 |       |       |        | S->P | HASH       |
|   7 |        PARTITION RANGE ALL                |                            |     1 |    12 |   203 |     1 |    96 |        |      |            |
|   8 |         INLIST ITERATOR                   |                            |       |       |       |       |       |        |      |            |
|   9 |          TABLE ACCESS BY LOCAL INDEX ROWID| F_TRANSACTION_RELEASED     |     1 |    12 |   203 |     1 |    96 |        |      |            |
|  10 |           BITMAP CONVERSION TO ROWIDS     |                            |       |       |       |       |       |        |      |            |
|* 11 |            BITMAP INDEX SINGLE VALUE      | F_TRANSACTION_RELEASE_BMX9 |       |       |       |     1 |    96 |        |      |            |
|  12 |     PX RECEIVE                            |                            |  7579K|   838M|    96 |       |       |  Q1,02 | PCWP |            |
|  13 |      PX SEND HASH                         | :TQ10001                   |  7579K|   838M|    96 |       |       |  Q1,01 | P->P | HASH       |
|  14 |       PX BLOCK ITERATOR                   |                            |  7579K|   838M|    96 |     1 |     3 |  Q1,01 | PCWC |            |
|  15 |        TABLE ACCESS FULL                  | F_CHARGE_CODE_RELEASED     |  7579K|   838M|    96 |     1 |     3 |  Q1,01 | PCWP |            |
Predicate Information (identified by operation id):
   3 - access("TRAN"."ID_TRANSACTION_RELEASED"="CTRAN"."ID_TRANSACTION_RELEASED")
  11 - access("ID_LIABILITY_CIF"=141515 OR "ID_LIABILITY_CIF"=727873)
Note
   - cpu costing is off (consider enabling it)

Hence my questions, which you didn't address:
1) It might very well be a bug, did you check MetaLink/MyOracleSupport already?
I didn't check that yet'Suddenly failing' is often a synonym for 'something has changed'.
2)Are you absolutely sure nothing has changed?
Nothing has changed unless some stats or index got corrupted which we are assuming.3)What made you decide to use that hint anyway?
We read somewhere there is a bug with Oracle 11G hash joins and trying with 9i does help. 4)And are the tables 'normal, ordinary tables' or does the F_ prefix indicate something special?
It's fact tablesAnd to add another one:
5) Did you or your DBA noticed strange errors or messages in the alert.log?
Have to check on that.

Similar Messages

  • Same Query returning different result (Different execution plan)

    Hi all,
    To day i have discovered a strange thing: a query that return a different result when using a different execution plan.
    The query :
    SELECT  *
      FROM schema.table@database a
    WHERE     column1 IN ('3')
           AND column2 = '101'
           AND EXISTS
                  (SELECT null
                     FROM schema.table2 c
                    WHERE a.column3 = SUBSTR (c.column1, 2, 12));where schema.table@database is a remote table.
    when executed with the hint /*+ ordered use_nl(a c) */ these query return no result and its execution plan is :
    Rows     Row Source Operation
          0  NESTED LOOPS  (cr=31 r=0 w=0 time=4894659 us)
       4323   SORT UNIQUE (cr=31 r=0 w=0 time=50835 us)
       4336    TABLE ACCESS FULL TABLE2 (cr=31 r=0 w=0 time=7607 us)
          0   REMOTE  (cr=0 r=0 w=0 time=130536 us)When i changed the execution plan with the hint /*+ use_hash(c a) */
    Rows     Row Source Operation
       3702  HASH JOIN SEMI (cr=35 r=0 w=0 time=497839 us)
      22556   REMOTE  (cr=0 r=0 w=0 time=401176 us)
       4336   TABLE ACCESS FULL TABLE2 (cr=35 r=0 w=0 time=7709 us)It seem that when the execution plan have changed the remote query return no result.
    It'is a bug or i have missed somthing ?
    PS: The two table are no subject to insert or update statement.
    Oracle version : 9.2.0.2.0
    System version : HP-UX v1
    Thanks.

    H.Mahmoud wrote:
    Oracle version : 9.2.0.2.0
    System version : HP-UX v1Hard to say. You're using a very old and deprecated version of the database, and one that was known to contain bugs.
    9.2.0.7 was really the lowest version of 9i that was considered to be 'stable', but even so, it's old and lacking in many ways.
    Consider upgrading to the latest database version at your earliest opportunity. (or at least apply patches up to the latest 9i version before querying if there is bugs in your really low buggy version)

  • Simple query returns wrong results in Sql 2012

    On my Windows 8 box running Sql 2012 11.0.3128, this query returns an IncludeCount of 0 and an ExcludeCount of 1.
    On my Windows 7 box running Sql 2008 10.50.2550 this query returns an IncludeCount of 3 and an ExcludeCount of 1, which is correct.
    In short, it runs properly on these versions of OS and Sql's:
    Windows 2008 R2 + Sql 10.50.2550
    Windows 2008 R2 + Sql 10.50.4000
    Windows 2012 SP1 + Sql 11.0.3000
    Windows 7 + Sql 11.0.2100
    And gives incorrect results on these OS's and Sql's (so far, tested):
    Windows 8 Enterprise + Sql 11.0.3128
    Windows 2008 R2 + Sql 10.50.2550
    I wondered if anyone else can reproduce this?  I can't figure out the magic combination of OS and SQL version this breaks on.
    In all scenarios, the resulting @filters table is populated correctly, and the [Include] column is properly set to a 1 or a 0, so why aren't the other variables being properly set?
    If I change the [ID] column to NONCLUSTERED, it works fine, too.  It doesn't matter if @filters is a TVP or a temp table or an actual table, same (incorrect) results in each case.
    DECLARE @filters TABLE([ID] bigint PRIMARY KEY, [Include] bit)
    DECLARE @excludecount int = 0
    DECLARE @includecount int = 0
    DECLARE @id bigint
    INSERT INTO @filters ([ID])
    VALUES (1), (3), (4), (-7)
    UPDATE @filters SET
        @id = [ID],
        @includecount = @includecount + (CASE WHEN @id > 0 THEN 1 ELSE 0 END),
        @excludecount = @excludecount + (CASE WHEN @id < 0 THEN 1 ELSE 0 END),
        [Include] = CASE WHEN @id > 0 THEN 1 ELSE 0 END,
        [ID] = ABS(@id)
    SELECT @includecount as IncludeCount, @excludecount as ExcludeCount
    SELECT * FROM @filters

    What part is undocumented?
    http://technet.microsoft.com/en-us/library/ms177523.aspx
    The above link states I can update variables inside an UPDATE statement ...
    But it does not say what the correct result of what you are trying to would be. Variable assignment in UPDATE only makes sense if the UPDATE hits one row. If the UPDATE matches several rows, which value you the variable is set to is not defined.
    It gets even more complicated when you have the variable on both sides of the expression. But I'd say that the only two values that makes as the final value of @includecount 0. An UPDATE statement, like other DML statements in SQL, is logically defined
    as all-at-once. There are no intermediate results. Therefore the only possible values are the initial value of @includecount plus the value of the CASE statement, which always should returns 0, since @id is NULL when the UPDATE statement starts to execute.
    I'm afraid that what you have is nonsense from a language perspective, and the result is undefined. Whenever you get different results from a query depending on whether you have certain indexes in place, you know that the query is indeterministic. There
    are certainly part of SQL that are indeterministic, for instance ORDER BY on a non-unique columns. But in this particular case you have also wandered out into the land that is also undefined.
    I'm not sure what you are trying to achieve, but I can only advice you to go back to the drawing board.
    Erland Sommarskog, SQL Server MVP, [email protected]

  • Query returning No result

    Hi,
    I installed Oracle Express Edition 10g in my system.
    I ran a very simple query:
    Select * from person where status = 100
    where status is NUMBER(9) NOT NULL but it does not returning any result.
    Any Idea? Is this because of Express Edition version?
    Thank You.

    You've been asked twice to show us a copy/paste of a query which you've not done.
    Fire up SQLPlus, run the command asked of you, and copy and then paste the results into a post (enclosing it in the tags to preserve formatting).
    It's much easier to help you when you try and help us by following along with suggestions.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Query returning zero results for yesterdays same hour

    I have the following query:
    SELECT
    d_dtm,
    BTS_ID,
    CASE WHEN D_DTM = (D_DTM-24/24)
    THEN sum(V_ATT_CNT)
    END AS "LASTATT",
    sum(V_ATT_CNT) as "V_ATT_CNT",
    CASE WHEN D_DTM = D_DTM
    THEN sum(V_ATT_CNT)
    END AS "ATT"
    FROM
    DMSN.DS3R_FH_1XRTT_FA_LVL_KPI
    WHERE
    to_date(D_DTM, 'DD/MM/yyyy') >= (SELECT TO_DATE(max(D_DTM),'DD/MM/YYYY') FROM DMSN.DS3R_FH_1XRTT_FA_LVL_KPI)-2
    GROUP BY
    d_dtm,
    BTS_ID
    having
    CASE WHEN D_DTM = (D_DTM-24/24)
    THEN sum(V_ATT_CNT)
    END > 0
    But it is not returning any results because of the "having" clause. I know it should return results because all I want it to do is in one column have the V_ATT for the current time period, and in the 2nd column, have the V_ATT 24 hours ago. I've checked the data and I should get results back but can't seem to figure out why this is not working...
    Edited by: k1ng87 on Apr 22, 2013 1:03 PM

    Hi,
    k1ng87 wrote:
    I have the following query:
    SELECT
    d_dtm,
    BTS_ID,
    CASE WHEN D_DTM = (D_DTM-24/24)
    THEN sum(V_ATT_CNT)
    END AS "LASTATT",
    ...You may have noticed that this site normally doesn't display multiple spaces in a row.
    Whenever you post formatted text (including, but not limited to, code) on this site, type these 6 characters:
    \(small letters only, inside curly brackets) before and after each section of formatted text, to preserve spacing.
    That's just one of many useful things found in the forum FAQ {message:id=9360002}  
    But it is not returning any results because of the "having" clause. You're right:HAVING CASE
         WHEN d_dtm = (d_dtm - 24/24)
         THEN SUM (v_att_cnt)
         END > 0
    Whatever d_dtm is, it's not d_dtm - 24/24, so the WHEN condition will never be TRUE.  That means the CASE expression will always return NULL, and NULL is not greater than 0, so the HAVING condition will never be TRUE.
    k1ng87 wrote:
    confused on what I'm missing here...I'm using version 11g, not sure if that matters for this ? though....There is no version 11f or 11h, so it's kind of silly to say you're using 11g.  Why not give your actual version number, like 11.2.0.2.0?  Sometimes, the part after 11 makes a huge difference.
    But probably not in this case, as you said.   What's more important is for you to post CREATE TABLE and INSERT statements for a little sample data, and the results you want from that sample data.
    No kidding; see the forum FAQ {message:id=9360002}.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • CAML Query returning no result

    I have this CAML query running fine on my local dev machine, but on live production machine, it returns zero result.
    <Where>
    <And>
    <Geq><FieldRef Name='Created' /><Value Type='DateTime'>[Today-60Day(s)]</Value></Geq>
    <And>
    <Contains><FieldRef Name='Author' /><Value Type='User'>Phil Smith</Value></Contains>
    <And>
    <IsNotNull><FieldRef Name='Customer' /></IsNotNull>
    <Or>
    <IsNotNull><FieldRef Name='_x0031_Quantity' /></IsNotNull>
    <Or>
    <IsNotNull><FieldRef Name='_x0032_Quantity' /></IsNotNull>
    <Or>
    <IsNotNull><FieldRef Name='_x0033_Quantity' /></IsNotNull>
    <IsNotNull><FieldRef Name='_x0034_Quantity' /></IsNotNull>
    </Or>
    </Or>
    </Or>
    </And>
    </And>
    </And>
    </Where>
    I even run it in CAML Query builder on Live machine and it does return result, but it's just in code, it's not returning anything. The code is as follow:
    spQuery.Query = String.Format("<Where>" +
    "<And>" +
    "<Geq>" +
    "<FieldRef Name='Created' />" +
    "<Value Type='DateTime'>[Today-60Day(s)]</Value>" +
    "</Geq>" +
    "<And>" +
    "<Contains>" +
    "<FieldRef Name='Author' />" +
    "<Value Type='User'>{0}</Value>" +
    "</Contains> " +
    "<And>" +
    "<IsNotNull><FieldRef Name='Customer' /></IsNotNull>" +
    "<Or>" +
    "<IsNotNull><FieldRef Name='_x0031_Quantity' /></IsNotNull>" +
    "<Or>" +
    "<IsNotNull><FieldRef Name='_x0032_Quantity' /></IsNotNull>" +
    "<Or>" +
    "<IsNotNull><FieldRef Name='_x0033_Quantity' /></IsNotNull>" +
    "<IsNotNull><FieldRef Name='_x0034_Quantity' /></IsNotNull>" +
    "</Or>" +
    "</Or>" +
    "</Or>" +
    "</And>" +
    "</And>" +
    "</And>" +
    "</Where>", myWeb.CurrentUser.Name);
    SPListItemCollection result = oPriceList.GetItems(spQuery);
    if (result.Count > 0)

    Instead of "<Value Type='DateTime'>[Today-60Day(s)]</Value>", Could you try with the following:
    <Value Type='DateTime'><Today OffsetDays="-60"/></Value>"
    Also,
    it is better to debug the code and see the value of caml string during runtime (rather than seeing the values in caml buider).
    Thanks Arut

  • Oracle function and query return different results

    Hi, I am using oracle 10g database.
    Function is :
    create or replace FUNCTION FUNC_FAAL(myCode number,firstDate date
    *, secondDate date)*
    RETURN INTEGER as
    rtr integer;
    BEGIN
    select count() into rtr*
    from myschema.my_table tbl where tbl.myDateColumn between firstDate and
    secondDate and tbl.kkct is null and tbl.myNumberColumn  = myCode ;
    return (rtr);
    END FUNC_FAAL;
    This function returns 117177 as result.
    But if I run same query in the function seperately ;
    select count()*
    from myschema.my_table tbl
    where tbl.myDateColumn between firstDate and secondDate
    and tbl.kkct is null and tbl.myNumberColumn  = myCode ;
    I get different result 11344 (which is the right one).
    Table and function are in the same schema.
    What can be the problem ?
    Thanks.

    1. i think ur parameter name and Column names are same Firstdate and seconddate try to choose different name
    2. try using Trunc function around your dates
    where trunc(tbl.myDateColumn) between trunc(firstDate) and trunc(secondDate)then compare the result....sometimes time elements comes into play.
    Baig
    [My Oracle Blog|http://baigsorcl.blogspot.com/]

  • SSIS query returns no results - same query in SQL management studio works

    Hello,
    I'm running a very simple join to get a result set:
    SELECT dbo.sap_contracts.svc_id, dbo.sap_contracts.svc_code, dbo.sap_contracts.quantity, dbo.sap_contracts.start_date, dbo.sap_contracts.end_date
    FROM dbo.sap_contracts
    INNER JOIN dbo.contracts
    ON dbo.contracts.contract_id=dbo.sap_contracts.contract_id
    where customer_name='XXXXXXXXX'
    When I run this in SQL management studio it works fine and returns the list of existing "SAP contracts" in the DB (to compare to the customer's contracts actually in SAP).
    In SSIS (SQL 2012) I'm using an Execute SQL task to run this query and putting the full results set into a variable of type "object". I've done very similar things before and it worked fine. With this query in SSIS I get no results at all. Changing
    the variable type to "string" throws an error showing that the type being written to the variable is "DBNull" - so it seems that the query in SSIS returns no records, when in SQL management studio I get the 15 records that should be returned.
    Does anyone have any ideas of what could be wrong?
    Cheers
    Mark

    There are several connections to the DB in tasks before this one, and the task after this is a whole load of C# in a script task doing SOAP communications to the SAP ERP system to compare the result set from this SQL with the contracts in SAP ERP for the
    specific customer.
    Input variables are all correct (I've checked them about 15 times now with breakpoints on just about every task in the whole package) and I'm at the point of having to test everything in an attempt to see exactly what query is being sent to the SQL server
    and anything else I can do to see why nothing comes back. There is a almost complete lack of debugging tools in SSIS which doesn't make life any easier (something I've heard quite a few times in various forums).
    I'm tearing my hair out on this for half a day now and it's not funny any more, so apologies if I come across as a little frustrated.
    Cheers
    Mark

  • Problem with sdo_relate returning unexpected results

    I am having a problem with an oracle spatial query not returning what I feel is an appropriate result.
    I have a bounding box that has 6 points from a table that should be inside it. There are several hundred points total in this table. I perform the following query and oracle returns only 4 points, well 5 but we will get to that later, within the area of the search.
    SQL> Select feature_id
    From city_points A
    where (MDSYS.SDO_RELATE(A.GEOM, mdsys.sdo_geometry(2003, 8307, NULL, mdsys.sdo_elem_info_array(1,1003,1), mdsys.sdo_ordinate_array(-101.8417,-52.8083,-23.8417,-52.8083,-23.8417,-13.8083,-101.8417,-13.8083,101.8417,-52.8083)), 'mask=ANYINTERACT querytype=join') = 'TRUE');
    I used a different application to perform the same type of query. The difference is that the application does the spatial query, not oracle. Further the application gets all of the points and performs this query on the client. What the application returns is correct both visually and spatially.
    Two of the points not returned in the oracle spatial query are 300km inside the bounding box. This far exceeds the .5 m tolerance used in our decimal degrees data set (SRID 8307).
    I have experienced this problem on 9.2.0.1. I then patched that instance to 9.2.0.7 and duplicated the problem. I then exported the data and imported into a 10g release 1 database and again duplicated the problem. I have tried to re-index the data to no avail.
    I have also tried different querytypes also yielding less than expected results.
    The data looks like this:
    243
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-58.45, -34.6, NULL),NULL, NULL)
    254
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-56.18333, -34.883334, NULL), NULL, NULL)
    377
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-70.666671, -33.449999, NULL), NULL, NULL)
    385
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-68.149999, -16.5, NULL), NULL, NULL)
    388
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-47.916667, -15.783333, NULL), NULL, NULL)
    427
    SDO_GEOMETRY(2001, 8307, SDO_POINT_TYPE(-57.640066, -25.270295, NULL), NULL, NULL)
    The number is the id field, the rest is the geometry.
    The oracle spatial query above only returns id #s 359, 377,243,254,427
    There are five returned records. The extra value is outside the bounding area. So it should not have been returned at all. It is all too strange.
    I have seen this with different geometry types (points lines and area) as well.
    If anyone has suggestions, I would appreciate your comments.
    Thanks,
    John

    John,,
    What you are seeing is the behavior you should expect in the geodetic space.
    When you have a very long line connecting from longitude -101 to -23, that line
    does not follow the same latitude value.
    Since these points are in southern hemisphere, the line connecting them
    will curve downward (this is the great circle line).
    If you really want a line connecting with constant latitude, you should
    use the MBR type for the window geometry which densifies the
    lines along constant latitude before passing it into relate.
    SDO_GEOMETRY(2003, 8307, NULL,
    sdo_elem_info_array(1,1003,3),
    sdo_ordinate_array(-101.8417,-52.8083, 23.8417,-13.8083))
    siva

  • Same query returns differenent result sets in oracle 9i and 10g

    Could anyone please clarify the issue i am having on a query. I have query that is returning around 2000 records in oracle db 9.2.0.8.0, at the same time with same data if run on 10.2.0.1.0 is returning only 12 records.
    what might be the reason for this descrepancy, is something in 9i is considered differently in 10g?
    Here is the query.
    SELECT
    0
    ,ot_req_head.rh_sys_id
    ,ot_req_head.rh_comp_code
    ,ot_req_head.rh_txn_code
    ,ot_req_head.rh_no
    ,ot_req_head.rh_appr_uid
    ,'Action to be taken' action
    ,ot_req_head.rh_appr_dt
    ,NULL AUTH_TO_UID
    ,NULL
    ,NULL
    ,NULL from_remarks
    ,NULL
    ,NULL
    ,'REQ'
    ,ot_req_head.rh_amd_no
    ,ot_req_head.rh_amd_dt
    ,ot_req_head.rh_cr_uid
    ,DECODE(ot_req_head.rh_charge_area_num,6,ot_req_head.rh_locn_code,1,ot_req_head.rh_charge_code,NULL)
    ,ot_req_head.rh_cr_dt
    ,NULL
    FROM
    orioni.om_txn_setup,
    orioni.ot_req_head,
    iscoit.isco_txn_auth,
    SELECT DISTINCT rh_sys_id
    FROM orioni.pending_mr
    )pending_mr
    WHERE
    ot_req_head.rh_txn_code=txns_txn_code
    AND
    auth_comp_code(+)=ot_req_head.rh_comp_code
    AND
    auth_action_to_type(+) IS NULL
    AND
    auth_head_sys_id(+)=ot_req_head.rh_sys_id
    AND
    auth_txn_code(+)=ot_req_head.rh_txn_code
    AND
    ot_req_head.rh_clo_status IS NULL
    AND
    ot_req_head.rh_comp_code='001'
    AND
    txns_txnp_code='PURREQ'
    AND
    txns_values='N'
    AND
    ot_req_head.rh_appr_status=3
    AND
    ot_req_head.rh_sys_id = pending_mr.rh_sys_id
    AND NOT EXISTS
    SELECT 'X'
    FROM
    iscoit.isco_txn_auth A
    WHERE
    a.auth_head_sys_id = isco_txn_auth.auth_head_sys_id
    AND
    a.auth_action_from_uid = ot_req_head.rh_appr_uid
    AND
    a.auth_action_from_type = 'Action to be taken'
    AND
    a.auth_action_from_dt = ot_req_head.rh_appr_dt
    AND
    NVL(a.auth_txn_amend_no,0) = NVL(ot_req_head.rh_amd_no,0)
    AND
    a.auth_action_to_type = 'REJECT'
    AND
    ot_req_head.rh_cr_dt > TO_DATE('16-MAR-2008','DD-MON-YYYY')
    Edited by: unus on Oct 19, 2009 3:56 AM
    Edited by: unus on Oct 19, 2009 4:18 AM

    Here's what I got on 9i and 10G:
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
    With the Partitioning, OLAP and Oracle Data Mining options
    JServer Release 9.2.0.8.0 - Production
    SQL> CREATE TABLE T_1(VAL1 NUMBER,VAL2 VARCHAR2(10));
    Table created.
    SQL> CREATE TABLE T_2(VAL1 NUMBER,VAL2 VARCHAR2(10));
    Table created.
    SQL> INSERT INTO T_1 VALUES(1,'FIRST');
    1 row created.
    SQL> INSERT INTO T_1 VALUES(2,'SECOND');
    1 row created.
    SQL> INSERT INTO T_2 VALUES(1,'FIRST');
    1 row created.
    SQL> INSERT INTO T_2 VALUES(2,'SECOND');
    1 row created.
    SQL> INSERT INTO T_1 VALUES(3,'THIRD');
    1 row created.
    SQL> INSERT INTO T_1 VALUES(4,'FOURTH');
    1 row created.
    SQL> INSERT INTO T_1 VALUES(5,'FIFTH');
    1 row created.
    SQL> commit;
    Commit complete.
    SQL> SELECT A.VAL1,B.VAL1 FROM
      2  T_1 A,T_2 B
      3  WHERE A.VAL1=B.VAL1;
         VAL1      VAL1
            1         1
            2         2
    SQL> SELECT A.VAL1,B.VAL1 FROM
      2  T_1 A,T_2 B
      3  WHERE A.VAL1=B.VAL1(+);
         VAL1      VAL1
            1         1
            2         2
            3
            4
            5
    SQL> SELECT A.VAL1,B.VAL1 FROM
      2  T_1 A,T_2 B
      3  WHERE A.VAL1=B.VAL1(+)
      4  AND
      5  NOT EXISTS (SELECT 'X' FROM t_2 C WHERE c.val1=b.val1);
         VAL1      VAL1
            3
            4
            5
    SQL> select name, value from v$parameter where name like '%optimizer%' or name like '%cursor_sharing
    NAME                                                             VALUE
    cursor_sharing                                                   EXACT
    optimizer_features_enable                                        9.2.0
    optimizer_mode                                                   CHOOSE
    optimizer_max_permutations                                       2000
    optimizer_index_cost_adj                                         100
    optimizer_index_caching                                          0
    optimizer_dynamic_sampling                                       1
    -- 10G
    Verbonden met:
    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP and Data Mining options
    SQL> SELECT A.VAL1,B.VAL1 FROM
      2  T_1 A,T_2 B
      3  WHERE A.VAL1=B.VAL1;
          VAL1       VAL1
             1          1
             2          2
    SQL> SELECT A.VAL1,B.VAL1 FROM
      2  T_1 A,T_2 B
      3  WHERE A.VAL1=B.VAL1(+);
          VAL1       VAL1
             1          1
             2          2
             5
             4
             3
    SQL> SELECT A.VAL1,B.VAL1 FROM
      2  T_1 A,T_2 B
      3  WHERE A.VAL1=B.VAL1(+)
      4  AND
      5  NOT EXISTS (SELECT 'X' FROM t_2 C WHERE c.val1=b.val1);
          VAL1       VAL1
             3
             4
             5( Please use the tag before and after your example, so we're sure we're looking at your complete example )                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • About Query returns no results?????

    Has anyone had any luck getting an about(xxx) query to function as described in the documentation? I'm sure it works....but I can't seem to get anywhere.
    I created a table "TEST_HELP". Columns Help_id, Help_Text
    I put a handfull of records in the table, populating the column Help_Text with data such as
    1, This is a document about animals.
    2, This is all about the wonder world of dogs.
    3, This is why fish suck.
    4, Cats and why they think they rule the world.
    5, Creature of the deep.
    ok, next I created a small thesaurus with terms defined as:
    animal
    syn creature
    nt dog
    nt cat
    nt fish
    I load the thesaurus.
    I create a CONTEXT index on TEST_HELP, utilizing LEXER preferences:
    INDEX_TEXT= YES
    INDEX_THEMES= YES
    I can issue a contains query using the thesaurus operators SYN, NT and get the results I expect. However if I issue an about(animal) query I would expect to get all 5 records. (Based on the expansion of all SYN and NT)
    So, can anyone tell me if my process is wrong? Are my expectations wrong? Does it even work?
    Working with Oracle 9.2 on a windows 2000 server platform.
    Thank you all for you time.

    Alright, I recreated the table, thesaurus and index (in that order)
    and the about query appears to be working.
    When I recreated the table I added more robust data to the help_text column.
    (Don't know if this had anything to do with it or not)
    Is there a specific order of creation that needs to be followed? table, thes, index

  • Union_all query returns wrong results

    I have 6 individual queries that combine together using "union_all". If I run it, it returns 6084 records, see example 1.
    Example 1:
    sql1
    union_all
    sql2
    unionl_all
    sql3
    sql6;
    if I do it this way, example2, I get only 3821 records. Is there a bug in Oracle 11g? I select everything from 6084 records, I should get them all, correct?
    Example 2:
    select * from
    sql1
    union_all
    sql2
    unionl_all
    sql3
    sql6
    note that I use "union_all" because the computer does not take it without the underscore.

    user557594 wrote:
    Your queries do not deal with thousand of rows. My queries worked ok before the upgrade to 11g. I just want to know if there is a bug related to union all in 11g.If you believe that you are encountering a bug, you really should be posting this over on Metalink (My Oracle Support). When you do, you'll want to specify at a minimum the 4 digit Oracle version you are using (11g could mean either of two major releases and a few different patchsets).
    I'm sure if you search My Oracle Support, you'll find at least one bug in whatever version of 11g you're using that occurs when UNION ALL is used (though I'll wager that you need two or three other conditions to be true as well). If you open a ticket, however, Oracle Support can determine whether you are actually encountering an error and/or whether you've encountered any of the published bugs, an unpublished bug, or a new bug. Once you know that, Oracle Support may or may not have a patch for you.
    Unfortunately, if you can't post a test case that would allow us to reproduce the problem locally, it's going to be hard for us to provide much assistance. Of course, Oracle Support will also need a reproducible test case, but they can probably help you work through the process of putting one together complete with sample data and a query plan.
    Justin

  • URGENT: Simple Query Returning Unexpected Info

    Using the Oracle XSU for Java and one of the samples, i'm doing a simple select * from table. Everything is executing properly, however, the string output of the XML just returns what is documented in the release notes - that is a XML header and "</ROWSSET>".
    No information is displayed and yes there is some in the table. What am I doing wrong? Do I need to format the sql query better?

    I figured it out by myself. I didn't load into that particular database the java classes for XSU. Once I ran the .bat file that comes with the install: oraclexmlsqlload.bat (customizing it for my database), the OracleXML getXML worked fine.
    - jason

  • Query returning wrong result set

    I am running the following query on 8.1.7 database. The query is
    SELECT Y.*, TEVStatus.lEndStatusFlag ENDSTATUSFLAG
    FROM
    (SELECT ROWNUM RANK, X.* FROM (SELECT lExceptionID ID,
    TEVException.sMonitorName MONNAME, sExcpStatus STATUS
    FROM TEVException WHERE (TEVException.lExceptionID IN
    (SELECT lExceptionID FROM TEVException WHERE
    sUserName_AssignedTo = 'vadmin')) ORDER BY
    TEVException.lExceptionID DESC) X)
    Y, TEVStatus WHERE (Y.RANK > 0 AND Y.RANK < 0 + 51 + 1) AND
    (STATUS = TEVStatus.sStatusName);
    The result is
    RANK ID MONNAME STATUS ENDSTATUSFLAG
    51 29 Type09B Open 0
    50 30 Type09A Open 0
    49 31 Type09E Open 0
    48 32 Type09F Open 0
    47 33 Type09G Open 0
    46 34 Type09I Open 0
    45 35 Type09C Open 0
    44 36 Type10A Open 0
    43 37 Type04A Open 0
    39 41 Type08A Open 0
    38 42 Type08C Open 0
    RANK ID MONNAME STATUS ENDSTATUSFLAG
    37 43 Type10B Open 0
    36 44 Type10E Open 0
    35 45 Type10C Open 0
    34 46 Type10F Open 0
    33 47 Type10D Open 0
    32 48 Type08B Open 0
    31 49 Type04B Open 0
    29 51 Type08D Open 0
    28 52 Type11E Open 0
    27 53 Type11A Open 0
    26 54 Type11D Open 0
    RANK ID MONNAME STATUS ENDSTATUSFLAG
    25 55 Type11C Open 0
    24 56 Type11B Open 0
    23 57 Type12A Open 0
    22 58 Type12B Open 0
    21 59 Type12C Open 0
    20 60 Type12E Open 0
    19 61 Type12A Open 0
    18 62 Type12B Open 0
    17 63 Type12E Open 0
    16 64 Type12C Open 0
    15 65 Type12D Open 0
    RANK ID MONNAME STATUS ENDSTATUSFLAG
    14 66 Type12D Open 0
    4 80 Type01A_Ravi Open 0
    3 83 Type01A_Ravi Open 0
    2 84 Type01A_Ravi Open 0
    1 87 Type01A_Ravi Open 0
    42 38 Type06E Closed 8500
    41 39 Type06A Closed 8500
    40 40 Type06B Closed 8500
    30 50 Type06C Closed 8500
    13 68 Type01A Closed 8500
    12 69 Type01A Closed 8500
    RANK ID MONNAME STATUS ENDSTATUSFLAG
    11 70 Type01A Closed 8500
    10 71 Type01A Closed 8500
    9 72 Type01A Closed 8500
    8 73 Type01A Closed 8500
    7 75 Type01A Closed 8500
    6 77 Type01A Closed 8500
    5 78 Type01A Closed 8500
    51 rows selected.
    In the above result, the RANK is not sorted properly and I
    expected ID in descending order. The table which I was querying
    had only about 100 records. I ran the same query on a larger
    record set and the result is fine. I get ID in descending order
    which I was expecting.
    Could someone please tell me whether any bug in this case or
    something wrong in the query

    Hi...
    Took a quick look at tour SQL and....
      SELECT Y.*
           , TEVStatus.lEndStatusFlag ENDSTATUSFLAG
        FROM ( SELECT ROWNUM RANK
                    , X.*
                 FROM ( SELECT lExceptionID ID
                             , TEVException.sMonitorName MONNAME
                             , sExcpStatus STATUS
                          FROM TEVException
                         WHERE ( TEVException.lExceptionID IN
                                 ( SELECT lExceptionID
                                      FROM TEVException
                                    WHERE sUserName_AssignedTo
                                          = 'vadmin'
                         ORDER BY TEVException.lExceptionID DESC
                      ) X
             ) Y
           , TEVStat us
       WHERE ( Y.RANK > 0
               AND
               Y.RANK < 0 + 51 + 1
         AND STATUS = TEVStatus.sStatusName ;
    Should "FROM ( SELECT ROWNUM RANK" be "FROM ( SELECT ROWNUM,
    RANK"?
    RANK is a reserved word, an analytic function.
    Is "ORDER BY TEVException.lExceptionID DESC" doing anything?  I
    would drop it..
    Hope this helps. Good Luck.

  • Same query returning different result set

    hi all,
    i am using db 10g.
    i have a query like below
      SELECT SUM(EID_AMOUNT)amt,EID_INCR_CODE,EIH_EFF_DATE
         FROM EMP_INC_HEADER,EMP_INC_DETAILS
        WHERE EIH_EMP_CODE = EID_EMP_CODE
          AND EIH_EFF_DATE = EIH_EFF_DATE
          AND EIH_STATUS   = 'P'
          AND EID_EMP_CODE = '003848'
    GROUP BY EID_INCR_CODE,EIH_EFF_DATE
    ORDER BY EID_INCR_CODE,EIH_EFF_DATE;which is leading to the output
          AMT EID_INCR_CODE   EIH_EFF_D
         2000 BASIC           21-SEP-10
         2000 BASIC           23-SEP-10
         2000 BASIC           15-OCT-10
         2000 BASIC           21-OCT-10
         1200 HTRAN           21-SEP-10
         1200 HTRAN           23-SEP-10
         1200 HTRAN           15-OCT-10
         1200 HTRAN           21-OCT-10
          800 OTHERS          21-SEP-10
          800 OTHERS          23-SEP-10
          800 OTHERS          15-OCT-10
          800 OTHERS          21-OCT-10i have query
    SELECT SUM(EID_AMOUNT)amt,EID_INCR_CODE,EID_EFF_DATE
    FROM EMP_INC_HEADER,EMP_INC_DETAILS
    WHERE EIH_EMP_CODE = EID_EMP_CODE
    AND EIH_EFF_DATE = EID_EFF_DATE
    AND EIH_STATUS = 'P'
    AND EID_EMP_CODE = '003848'
    GROUP BY EID_INCR_CODE,EID_EFF_DATE
    ORDER BY EID_INCR_CODE,EID_EFF_DATE;
    leading to
          AMT EID_INCR_CODE   EID_EFF_D
          500 BASIC           21-SEP-10
          500 BASIC           23-SEP-10
          500 BASIC           15-OCT-10
          500 BASIC           21-OCT-10
          300 HTRAN           21-SEP-10
          300 HTRAN           23-SEP-10
          300 HTRAN           15-OCT-10
          300 HTRAN           21-OCT-10
          200 OTHERS          21-SEP-10
          200 OTHERS          23-SEP-10
          200 OTHERS          15-OCT-10
          200 OTHERS          21-OCT-10
    12 rows selected.what second query is returning is correct. as per the table.
    but my question what is the difference between my first and second query.
    in what way it is different(i am not getting any idea).
    if any one is having any clue please share with me.
    Thanks..

    what is the difference between my first and second queryLook like there's no difference.
    I think you really meant something like
    SELECT SUM(EID_AMOUNT) amt,EID_INCR_CODE,EIH_EFF_DATE
      FROM EMP_INC_HEADER EIH,
           EMP_INC_DETAILS EID
    WHERE EIH.EMP_CODE = EID.EMP_CODE
       AND EIH.EFF_DATE = EIH.EFF_DATE
       AND EIH.STATUS   = 'P'
       AND EID.EMP_CODE = '003848'
    GROUP BY EID.INCR_CODE,EIH.EFF_DATE
    ORDER BY EID.INCR_CODE,EIH.EFF_DATERegards
    Etbin

Maybe you are looking for