--------------------FOI NECESSARIO NESSE CASO EM ESPECIFICO EXECUTAR ESSES SCRIPTS ABAIXO PRA RESOLVER UM PROBLEMA DE INDICES,PK E DUPLICIDADE----------------------
SELECT GEN_ID(COD_TRANSACAO_ESTOQUE, 1) FROM RDB$DATABASE;
UPDATE TRANSACAO_ESTOQUE_ITEM SET COD_TRANSACAO_ESTOQUE = @RESULT_GEN WHERE COD_TRANSACAO_ESTOQUE in (SELECT COD_TRANSACAO_ESTOQUE FROM TRANSACAO_ESTOQUE WHERE ID_TRANSACAO_ESTOQUE = '{D4C4555B-97BE-4340-BF78-5E868148DEFA}')
UPDATE TRANSACAO_ESTOQUE SET COD_TRANSACAO_ESTOQUE = @RESULT_GEN WHERE ID_TRANSACAO_ESTOQUE = '{D4C4555B-97BE-4340-BF78-5E868148DEFA}'
ALTER TABLE TRANSACAO_ESTOQUE
ADD CONSTRAINT PK_TRANSACAO_ESTOQUE
PRIMARY KEY (COD_TRANSACAO_ESTOQUE)
USING INDEX PK_TRANSACAO_ESTOQUE
------------------------------- EM SEGUIDA VAMOS EXECUTAR O SCRIPT PRA CRIAR AS PROCEDURES NO SCRIPT EXECUTIBVO, LOGO APOS VAMOS EXECUTAR ESSE PROCEDURE IR DEFININDO AS DATAS PARA EXCLUSAO DOS DADOS---------------------------------
SET TERM ^ ;
CREATE PROCEDURE PROC_DEL_MOVIMENTOS (
P_DATA_INICIO DATE,
P_DATA_FIM DATE
)
AS
BEGIN
DELETE FROM MOVIMENTO_ITEM WHERE COD_MOVIMENTO IN (SELECT COD_MOVIMENTO FROM MOVIMENTO WHERE DT_LANCAMENTO BETWEEN :P_DATA_INICIO AND :P_DATA_FIM + CAST('23:59:59' AS TIME));
DELETE FROM NFE_REFERENCIADA WHERE COD_MOVIMENTO IN (SELECT COD_MOVIMENTO FROM MOVIMENTO WHERE DT_LANCAMENTO BETWEEN :P_DATA_INICIO AND :P_DATA_FIM + CAST('23:59:59' AS TIME));
DELETE FROM MOVIMENTO WHERE DT_LANCAMENTO BETWEEN :P_DATA_INICIO AND :P_DATA_FIM + CAST('23:59:59' AS TIME);
SUSPEND;
END^
SET TERM ; ^
EXECUTE PROCEDURE PROC_DEL_MOVIMENTOS('2022-01-01', '2022-12-31');
------------------------------- EM SEGUIDA VAMOS EXECUTAR O SCRIPT PRA CRIAR AS PROCEDURES NO SCRIPT EXECUTIBVO, LOGO APOS VAMOS EXECUTAR ESSE PROCEDURE IR DEFININDO AS DATAS PARA EXCLUSAO DOS DADOS---------------------------------
SET TERM ^ ;
CREATE PROCEDURE PROC_DEL_TRANSACAO_ESTOQUE (
P_DATA_INICIO DATE,
P_DATA_FIM DATE
)
AS
BEGIN
DELETE FROM TRANSACAO_ESTOQUE_ITEM WHERE COD_TRANSACAO_ESTOQUE IN (SELECT COD_TRANSACAO_ESTOQUE FROM TRANSACAO_ESTOQUE WHERE DH_DIGITACAO BETWEEN :P_DATA_INICIO AND :P_DATA_FIM + CAST('23:59:59' AS TIME));
DELETE FROM TRANSACAO_ESTOQUE WHERE DH_DIGITACAO BETWEEN :P_DATA_INICIO AND :P_DATA_FIM + CAST('23:59:59' AS TIME);
SUSPEND;
END^
SET TERM ; ^
EXECUTE PROCEDURE PROC_DEL_TRANSACAO_ESTOQUE('2018-01-01', '2018-12-31');
--------------NESSE CASO FOI EXECUTADO DE 2018 A 2021 UM POR VEZ, APOS ISSO E NECESSARIO EXTRAIR OS DADOS E CRIAR UM BANCO NOVO--------------------
-EXTRACT METADATA
EXTRACT BLOBS
-SCRIPT EXECUTIVO (SQL GERADO PELO EXTRACT METADATA)