Para trabajar con auto numéricos en Oracle necesitamos hacer uso de las secuencias, ya explicamos como generar una secuencia en Oracle, ahora vamos a ver cómo podemos actualizarla en función de los valores de una tabla.
Imaginemos que tenemos una tabla con un índice y que hemos empezado a insertar valores en ella a mano pero que ahora nos damos cuenta de que es mucho más sencillo si utilizamos una secuencia, evidentemente si la creamos desde 0 podremos elegir el valor en el que empezará pero ¿y si la secuencia ya estuviera creada? lo que tendríamos que hacer sería llamarla tantas veces como el último índice de la tabla, por ello y para evitar que os canséis os dejo este pl/sql cuya función es llamar a la secuencia tantas veces como el último índice de la tabla, simplemente tendréis que cambiar los nombres de la tabla, del índice y del nombre de la secuencia.
DECLARE
max_codigo NUMBER(10) := 0;
codigo_aux NUMBER(10) := 0;
BEGIN
SELECT MAX(INDICE_TABLA) INTO max_codigo
FROM TABLA;
WHILE (max_codigo > codigo_aux) LOOP
SELECT NOMBRE_SECUENCIA.NEXTVAL INTO codigo_aux
FROM DUAL;
END LOOP;
END;
/







