Hi,

Please see more description...
When I try to run following Procedure. Now I have removed ROWNUM while selecting ROWID from table. I get following error.

ERROR at line 1:
ORA-01403: no data found
ORA-06512: at "SYSADM.PROTEST", line 22
ORA-06512: at line 1


Ultimately what I want is take 1000 names, surnames with highest distinct count in a table and update same 1000 names, surnames to all records(1 Million)in a table.

Please Help.

Thanks & Regards,

Shailesh
-----------------------------------------
CREATE OR REPLACE PROCEDURE ProTest AS

TYPE NameTab IS TABLE OF TblTest.NAME%TYPE INDEX BY BINARY_INTEGER;
TYPE SurNameTab IS TABLE OF TblTest.SurName%TYPE INDEX BY BINARY_INTEGER;
TYPE RidTab IS TABLE OF ROWID INDEX BY BINARY_INTEGER;

Names NameTab;
SurNames SurNameTab;
MyRowId RidTab;
rec_Rowid Binary_Integer;
BEGIN

SELECT Name BULK COLLECT INTO Names FROM (SELECT Name FROM TblTest
GROUP BY Name ORDER BY COUNT(Name) DESC) WHERE ROWNUM<=200;

SELECT SurName BULK COLLECT INTO SurNames FROM (SELECT SurName FROM TblTest
GROUP BY SurName ORDER BY COUNT(SurName) DESC) WHERE ROWNUM<=200;

SELECT ROWID BULK COLLECT INTO MyRowId FROM TblTest ;

FOR rec_Rowid IN MyRowId.FIRST..MyRowId.LAST Loop
UPDATE TblTest
SET myName = Names(rec_Rowid),
mySurName = SurNames(rec_Rowid)
WHERE ROWID = MyRowid(rec_Rowid);


END LOOP;

END;
/