Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Mailing Lists -> Oracle-L -> RE: PL/SQL Question:Eliminate duplicate rows
Ron,
Doesn't matter. On the way to your car, or the gym, or to watch your kids play ball - my Uncle Guido can find you anywhere you go!! :)
Tom Mercadante
Oracle Certified Professional
-----Original Message-----
Sent: Friday, September 19, 2003 5:20 PM
To: Multiple recipients of list ORACLE-L
Hi Tom-
Submitting to a listserve is like living in a small town. Make 1 little
oops and everybody knows
about it.
Do I need to look over my shoulder on the way to my car tonight??? ;)
Ron Thomas
Hypercom, Inc
rthomas_at_hypercom.com
Each new user of a new system uncovers a new class of bugs. -- Kernighan
NDATFM_at_labor.stat e.ny.us To:ORACLE-L_at_fatcity.com
Sent by: cc: ml-errors_at_fatcity Subject: RE: PL/SQLQuestion:Eliminate duplicate rows
.com 09/19/2003 02:29 PM Please respond to ORACLE-L
You know, I never use that exception, so I can't remember it correctly.
You are correct, of course - thanks for embarrasing me in front of thousands and thousands and thousands (how many Jared??) of people! :)
Tom Mercadante
Oracle Certified Professional
-----Original Message-----
Sent: Friday, September 19, 2003 4:10 PM
To: Multiple recipients of list ORACLE-L
except your too_many_rows exception should be dup_val_on_index...
Ron Thomas
Hypercom, Inc
rthomas_at_hypercom.com
Each new user of a new system uncovers a new class of bugs. -- Kernighan
NDATFM_at_labor.stat e.ny.us To:ORACLE-L_at_fatcity.com
Sent by: cc: ml-errors_at_fatcity Subject: RE: PL/SQLQuestion:Eliminate duplicate rows
.com 09/19/2003 01:54 PM Please respond to ORACLE-L
Johann,
how about the following. what this does is, using the inner begin/end block, catches when an insert would fail because of the PK failure and ignores the error.
This is very quick and dirty - it will work fine if you are not working with a huge amount of data.
declare
cursor c1 is
select col1, col2
from some_table;
begin
for c1_rec in c1 loop
begin
insert into new_table(col1, col2)
values (c1_rec.col1, c1_rec.col2);
exception
when too_many_rows then null;
If you are talking about lots and lots of data, you could easily query the table you are inserting into, testing for the existence of the value you are attempting to insert. If you find it, skip the insert. Like this:
declare
rec_count number;
cursor c1 is
select col1, col2
from some_table;
begin
for c1_rec in c1 loop
begin
select count(*)
into rec_count from new_table where col1 = c1_rec.col1; -- this assumes that col1 is the pk! if rec_count = 0 then insert into new_table(col1, col2) values (c1_rec.col1, c1_rec.col2); end if; exception when too_many_rows then null;
Good Luck!
Tom Mercadante
Oracle Certified Professional
-----Original Message-----
Sent: Friday, September 19, 2003 3:05 PM
To: Multiple recipients of list ORACLE-L
Looking for an a sample cursor routine to load a PK enabled table to
eliminate
any dupes from the load table.
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting servicesto: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting servicesto: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Ron Thomas
INET: rthomas_at_hypercom.com
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting servicesto: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting servicesto: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
--
Please see the official ORACLE-L FAQ: http://www.orafaq.net
--
Author: Ron Thomas
INET: rthomas_at_hypercom.com
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting servicesto: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing).
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
Fat City Network Services -- 858-538-5051 http://www.fatcity.com San Diego, California -- Mailing list and web hosting servicesto: ListGuru_at_fatcity.com (note EXACT spelling of 'ListGuru') and in the message BODY, include a line containing: UNSUB ORACLE-L (or the name of mailing list you want to be removed from). You may also send the HELP command for other information (like subscribing). Received on Mon Sep 22 2003 - 08:19:45 CDT
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message