Supongamos un caso hipotético. Tenemos una tabla usuarios con un mal diseño donde el campo nombre es la clave única:

CREATE TABLE MYUSERS
(
  NOMBRE   VARCHAR2 (50) NOT NULL,
  APELLIDO VARCHAR2 (50) NOT NULL,
  CONSTRAINT PK_MYUSERS PRIMARY KEY (NOMBRE)
);

La poblamos de datos de ejemplo:

INSERT INTO MYUSERS (NOMBRE, APELLIDO) VALUES ('Rafael','Sanchez');
INSERT INTO MYUSERS (NOMBRE, APELLIDO) VALUES ('Daniel','Rodriguez');
INSERT INTO MYUSERS (NOMBRE, APELLIDO) VALUES ('Rodolfo','Martínez');
INSERT INTO MYUSERS (NOMBRE, APELLIDO) VALUES ('Sebastian','López');
INSERT INTO MYUSERS (NOMBRE, APELLIDO) VALUES ('Laura','Martí');
INSERT INTO MYUSERS (NOMBRE, APELLIDO) VALUES ('Sergio','Casas');

Y se decide añadir un campo numérico autoincremental que será la nueva clave única.

Pasos:

1. Crear secuencia INCMYUSERS
2. Eliminar primary key PK_MYUSERS
3. Añadir nuevo campo ID_MYUSERS y que permita valores nulos.
4. Asignar un valor incremental al nuevo campo para cada uno de los registros ya existentes.
5. Modificar el campo ID_MYUSERS para que no permita nulos.
6. Crear nueva primary key PK_MYUSERS

Script:

-- crear secuencia
CREATE SEQUENCE INCMYUSERS INCREMENT BY 1 NOMINVALUE NOMAXVALUE NOCYCLE NOORDER CACHE 20; 
-- eliminar primary key
ALTER TABLE MYUSERS DROP CONSTRAINT PK_MYUSERS;
-- añadir nueva columna 
ALTER TABLE MYUSERS ADD ID_MYUSERS NUMERIC(10);
--dar un valor incremental
DECLARE
CURSOR MYUSERS_CUR IS
  SELECT * FROM MYUSERS
  FOR UPDATE OF ID_MYUSERS;
BEGIN
    FOR MYUSERS_REC IN MYUSERS_CUR
    LOOP
    UPDATE IMPORT
      SET    ID_MYUSERS = INCMYUSERS.NEXTVAL
      WHERE  CURRENT OF MYUSERS_CUR;
    END LOOP;
END;
-- ahora la nueva columna no puede ser nula
ALTER TABLE MYUSERS MODIFY ID_MYUSERS NUMERIC(10) NOT NULL; 
-- crear nueva primary key 
ALTER TABLE MYUSERS ADD CONSTRAINT PK_MYUSERS PRIMARY KEY (ID_MYUSERS);

Resultado: