From e537c11d8054f8628f21eb295b5c1ba7142e2481 Mon Sep 17 00:00:00 2001 From: "lucas.favaro" Date: Wed, 13 May 2026 14:20:43 -0300 Subject: [PATCH] =?UTF-8?q?Inclus=C3=A3o=20da=20tabela=20de=20metas=20de?= =?UTF-8?q?=20contribui=C3=A7=C3=A3o.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...7000016_seq_tb_flash_meta_contribuicao.sql | 23 ++++++ ...60507000017_tb_flash_meta_contribuicao.sql | 80 +++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 migrations/C5_big/20260507000016_seq_tb_flash_meta_contribuicao.sql create mode 100644 migrations/C5_big/20260507000017_tb_flash_meta_contribuicao.sql diff --git a/migrations/C5_big/20260507000016_seq_tb_flash_meta_contribuicao.sql b/migrations/C5_big/20260507000016_seq_tb_flash_meta_contribuicao.sql new file mode 100644 index 0000000..27bfb84 --- /dev/null +++ b/migrations/C5_big/20260507000016_seq_tb_flash_meta_contribuicao.sql @@ -0,0 +1,23 @@ +-- +goose Up +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'SEQ_TB_FLASH_META_CONTRIBUICAO'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'CREATE SEQUENCE SEQ_TB_FLASH_META_CONTRIBUICAO START WITH 1 INCREMENT BY 1 NOCACHE NOCYCLE'; + END IF; +END; +-- +goose StatementEnd + +-- +goose Down +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_sequences WHERE sequence_name = 'SEQ_TB_FLASH_META_CONTRIBUICAO'; + IF v_count > 0 THEN + EXECUTE IMMEDIATE 'DROP SEQUENCE SEQ_TB_FLASH_META_CONTRIBUICAO'; + END IF; +END; +-- +goose StatementEnd diff --git a/migrations/C5_big/20260507000017_tb_flash_meta_contribuicao.sql b/migrations/C5_big/20260507000017_tb_flash_meta_contribuicao.sql new file mode 100644 index 0000000..c85e469 --- /dev/null +++ b/migrations/C5_big/20260507000017_tb_flash_meta_contribuicao.sql @@ -0,0 +1,80 @@ +-- +goose Up +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_META_CONTRIBUICAO'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE ' + CREATE TABLE TB_FLASH_META_CONTRIBUICAO ( + ID_META NUMBER NOT NULL, + ID_NODO NUMBER NOT NULL, + DATA_REFERENCIA DATE NOT NULL, + ANO_REFERENCIA NUMBER(4) NOT NULL, + MES_REFERENCIA NUMBER(2) NOT NULL, + DIA_REFERENCIA NUMBER(2) NOT NULL, + PERCENTUAL_META NUMBER(10,4), + VALOR_META NUMBER(18,6), + OBSERVACAO VARCHAR2(500), + DATA_CADASTRO DATE DEFAULT SYSDATE NOT NULL, + DATA_ATUALIZACAO DATE, + CONSTRAINT PK_TB_FLASH_META_CONTRIBUICAO PRIMARY KEY (ID_META), + CONSTRAINT FK_TB_FLASH_META_CONTRIBUICAO_NODO FOREIGN KEY (ID_NODO) REFERENCES TB_FLASH_NODO (ID_NODO), + CONSTRAINT CK_TB_FLASH_META_CONTRIBUICAO_MES CHECK (MES_REFERENCIA BETWEEN 1 AND 12), + CONSTRAINT CK_TB_FLASH_META_CONTRIBUICAO_DIA CHECK (DIA_REFERENCIA BETWEEN 1 AND 31) + )'; + END IF; +END; +-- +goose StatementEnd +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_constraints WHERE constraint_name = 'UK_TB_FLASH_META_CONTRIBUICAO'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'ALTER TABLE TB_FLASH_META_CONTRIBUICAO ADD CONSTRAINT UK_TB_FLASH_META_CONTRIBUICAO UNIQUE (ID_NODO, DATA_REFERENCIA)'; + END IF; +END; +-- +goose StatementEnd +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_META_CONTRIBUICAO_NODO'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_META_CONTRIBUICAO_NODO ON TB_FLASH_META_CONTRIBUICAO (ID_NODO)'; + END IF; +END; +-- +goose StatementEnd +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_META_CONTRIBUICAO_DATA'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_META_CONTRIBUICAO_DATA ON TB_FLASH_META_CONTRIBUICAO (DATA_REFERENCIA)'; + END IF; +END; +-- +goose StatementEnd +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_indexes WHERE index_name = 'IX_TB_FLASH_META_CTB_ANOMESDIA'; + IF v_count = 0 THEN + EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_META_CTB_ANOMESDIA ON TB_FLASH_META_CONTRIBUICAO (ANO_REFERENCIA, MES_REFERENCIA, DIA_REFERENCIA)'; + END IF; +END; +-- +goose StatementEnd + +-- +goose Down +-- +goose StatementBegin +DECLARE + v_count NUMBER; +BEGIN + SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_META_CONTRIBUICAO'; + IF v_count > 0 THEN + EXECUTE IMMEDIATE 'DROP TABLE TB_FLASH_META_CONTRIBUICAO CASCADE CONSTRAINTS PURGE'; + END IF; +END; +-- +goose StatementEnd