RE: index doesn't contain duplicates

  • From: Josh Collier <Josh.Collier@xxxxxxxxxxxx>
  • To: "Goulet, Richard" <Richard.Goulet@xxxxxxxxxxx>, "mark.powell@xxxxxxx" <mark.powell@xxxxxxx>, "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 9 Jun 2009 13:29:32 -0700

when i run the lenghth function they return the same number.
________________________________
From: Goulet, Richard [Richard.Goulet@xxxxxxxxxxx]
Sent: Tuesday, June 09, 2009 11:22 AM
To: Josh Collier; mark.powell@xxxxxxx; oracle-l@xxxxxxxxxxxxx
Subject: RE: index doesn't contain duplicates

Josh,

    One question & this one has taken me to the cleaners more times that I'd 
like to admit.  The two rows that "appear" to be the same, are they of the same 
length?  Here's an example of what I mean:

    Row1: 'DATAVALUE'
    Row2: 'DATAVALUE '

There is a very slight difference, in this case a trailing space that really 
does make the two rows different.  Other characters that can cause similar 
problems is anything in the extended ascii character set which will show up 
like spaces.


Dick Goulet
Senior Oracle DBA
PAREXEL International



________________________________
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Josh Collier
Sent: Tuesday, June 09, 2009 2:12 PM
To: mark.powell@xxxxxxx; oracle-l@xxxxxxxxxxxxx
Subject: RE: index doesn't contain duplicates

Version 9208

The way the table was created was this..

Table was created with a CTAS
Non-unique index was built
Primary key was built on a column, specifying index created in step2. Enable 
novalidate. The data in question was inserted after the primary was in place.



The plan that produces the incorrect results is a fast full scan on the 
non-unique index
The plan that produces the correct result is a full tablescan on the table.

We

From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Powell, Mark D
Sent: Tuesday, June 09, 2009 10:22 AM
To: oracle-l@xxxxxxxxxxxxx
Subject: RE: index doesn't contain duplicates

Yes, the full Oracle version would be nice plus the select with plan the 
produces the proper results and one that does not.

Things you can try:

Run analyze index validate
Run analyze table validate cascade (depending on results from above)
Drop and re-create index

 -- Mark D Powell --
Phone (313) 592-5148


________________________________
From: oracle-l-bounce@xxxxxxxxxxxxx [mailto:oracle-l-bounce@xxxxxxxxxxxxx] On 
Behalf Of Josh Collier
Sent: Tuesday, June 09, 2009 12:11 PM
To: oracle-l@xxxxxxxxxxxxx
Subject: index doesn't contain duplicates
All,

I have an table that has duplicate values for a column. I have a non-unique 
index on this column. When I run a query that uses a fast full scan to retrieve 
the rows, it only retrieves one of the two rows. When I force a full tablescan 
both of the rows come back. I have used all my sql tricks to try my best to 
determine if the value has trailining or leading non-printable characters and 
it doesn’t appear so. I have also moved the values into a varchar 11 field in 
another table, the value is 11 chars long. Both of the duplicate rows where 
accepted. Does anyone know of a bug or a reason why both of the rows wouldn’t 
appear in the index?

Thanks for your time,
Josh C.

Other related posts: