Meu recorde atual em 5k!

quinta-feira, 28 de abril de 2016

Atualizar Sequence no Oracle

Script utilizado para atualizar uma sequence no Oracle quando valores foram inseridos manualmente (com código direto no INSERT) e a sequence ficou para trás.
DECLARE
actual_sequence_number
INTEGER;
max_number_from_table
INTEGER;
difference
INTEGER;
BEGIN
SELECT SQ_CD_TP_TAXA_SERV.CURRVAL INTO actual_sequence_number FROM DUAL;
SELECT MAX(CD_TP_tAXA_SERV) INTO max_number_from_table FROM SIGA_TIPO_TAXA_SERVICO;
SELECT (max_number_from_table-actual_sequence_number)+1 INTO difference FROM DUAL;
--DBMS_OUTPUT.put_line (actual_sequence_number);
--DBMS_OUTPUT.put_line (CONCAT('alter sequence sq_cd_tp_taxa_serv increment by ', difference));
EXECUTE IMMEDIATE CONCAT('alter sequence sq_cd_tp_taxa_serv increment by ', difference);
END;
--aqui ele puxa o próximo valor usando o incremento necessário
select sq_cd_tp_taca_serv.nextval 

--aqui volta o incremento para 1, para que futuras inserções funcionem normalmente
alter sequence sq_cd_tp_taxa_serv increment by 1

Nenhum comentário:

Postar um comentário

Criptografar e Descriptografar texto no linux ou windows

Criptografar: echo texto_para_criptografar | openssl aes-256-cbc -a -salt   Descriptografar:  echo chave_para_descriptografar | openssl aes-...