Estoy usando liquibase para administrar mi esquema. Tengo un montón de instrucciones de inserción. He codificado los números de identificación primaria. Después de hacer todas las inserciones, quiero cambiar el valor de la secuencia a 1 más que el valor máximo de la clave primaria en la tabla. Para esto, escribí un PL/SQL como se indica a continuación. Sin embargo, cuando ejecuto select ArtifactTypes_id_seq.nextval from dual;
todavía incrementa 0.Oracle: configuración de la secuencia a un valor específico
SET SERVEROUTPUT ON SIZE 1000000
DECLARE
sequence_id NUMBER;
BEGIN
SELECT NVL(MAX(idArtifactType), 0) + 1 INTO sequence_id FROM ArtifactTypes;
EXECUTE IMMEDIATE 'ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY ' || sequence_id;
EXECUTE IMMEDIATE 'SELECT ArtifactTypes_id_seq.nextval FROM dual';
EXECUTE IMMEDIATE 'ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 1';
DBMS_OUTPUT.put_line('Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY ' || sequence_id || '"');
END;
/
El DBMS_OUTPUT da siguiente salida - Executed "ALTER SEQUENCE saas.ArtifactTypes_id_seq INCREMENT BY 71"
Todo lo que me estoy perdiendo? ¿Estoy haciendo lo incorrecto? NOte: Intenté ejecutar estos SQL desde SQLDeveloper.