Solved

SQL Data Migration - Duplicate Keys found

Posted on 2012-03-22
3
546 Views
Last Modified: 2012-06-21
I have a massive issue I could use help with, one that deserves more than 500 points I am allowed to award.

I have an Oracle Table in a 9i database that houses my company's Serial Number Data (8million records + with 3,000 per day being added). The Serial Number field in this table is the primary key. My company is migrating from an Oracle Database to a SQL Database. I have recreated the table in SQL successfully. When I do a test export than import into SQL, I get a "Duplicate Key" Error and the load fails.

From what I understand, Oracle database distingushes from uppper and lower case characters. The SQL server does not. So what I think is happening is that I might have the following example in my Oracle DB:

Serial_Number
a123
A123

ORacle considers them different and when I import them into SQL, SQL consider's it duplicate. Serial Numbrs in my system are not supposed to be duplicate. They are user entry problems. I need to be able to find these duplicates some how and fix them.

Does anyone have an idea to have I can find serial numbers with lower case characters?Our system should only have upper case.

Thanks in advance.
0
Comment
Question by:mossmis
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 40

Accepted Solution

by:
Kyle Abrahams earned 500 total points
ID: 37754747
run this on your oracle:

select count(*), upper(serial)
from <table>
having (count(*) > 1)
group by upper(serial)


That will at least find your duplicates.  Then in your export you can uppercase everything
if you're not supposed to have lower case characters.


also you can set the coalation on your SQL DB so that it considers case same as oracle.
0
 
LVL 8

Expert Comment

by:gpizzuto
ID: 37754753
If you want to check them in Oracle,
try:

SELECT Serial_Number
FROM YourTable
WHERE REGEXP_LIKE(Serial_Number ,'[:lower:]');
0
 

Author Closing Comment

by:mossmis
ID: 37754807
Perfect! Short and sweet! I found 15 dups! Now time to yell at people for making mistakes!
0

Featured Post

Webinar: Aligning, Automating, Winning

Join Dan Russo, Senior Manager of Operations Intelligence, for an in-depth discussion on how Dealertrack, leading provider of integrated digital solutions for the automotive industry, transformed their DevOps processes to increase collaboration and move with greater velocity.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

This article explains how to reset the password of the sa account on a Microsoft SQL Server.  The steps in this article work in SQL 2005, 2008, 2008 R2, 2012, 2014 and 2016.
Shell script to create broker configuration file using current broker Configuration, solely for purpose of backup on Linux. Script may need to be modified depending on OS-installation. Please deploy and verify the script in a test environment.
This videos aims to give the viewer a basic demonstration of how a user can query current session information by using the SYS_CONTEXT function
Via a live example, show how to backup a database, simulate a failure backup the tail of the database transaction log and perform the restore.

730 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question