Files
app-dono-modulos/migrations/C5_big/20260520000008_tb_flash_nodo_resumo_perda.sql
T
lucas.favaro 6acc92dfe2
davinTI/app-dono-modulos/pipeline/head This commit looks good
Atualizações e criação das tabelas para o ambiente do Barcelos.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 16:27:57 -03:00

86 lines
3.4 KiB
SQL

-- +goose Up
-- +goose StatementBegin
DECLARE
v_count NUMBER;
BEGIN
SELECT COUNT(*) INTO v_count FROM user_tables WHERE table_name = 'TB_FLASH_NODO_RESUMO_PERDA';
IF v_count = 0 THEN
EXECUTE IMMEDIATE '
CREATE TABLE TB_FLASH_NODO_RESUMO_PERDA (
ID_RESUMO 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,
VALOR_VENDA NUMBER(18,6),
VALOR_META_PROPRIA NUMBER(18,6),
VALOR_META_FILHOS NUMBER(18,6),
VALOR_META_EFETIVA NUMBER(18,6),
PERCENTUAL_META_PROPRIA NUMBER(10,4),
PERCENTUAL_META_FILHOS NUMBER(10,4),
PERCENTUAL_META_EFETIVA NUMBER(10,4),
DESVIO NUMBER(18,6),
PERCENTUAL_ATINGIMENTO NUMBER(18,6),
DATA_APURACAO DATE DEFAULT SYSDATE NOT NULL,
CONSTRAINT PK_TB_FLASH_NODO_RES_PERDA PRIMARY KEY (ID_RESUMO),
CONSTRAINT FK_TB_FLASH_NODO_RES_PERDA_NODO FOREIGN KEY (ID_NODO) REFERENCES TB_FLASH_NODO (ID_NODO),
CONSTRAINT CK_TB_FLASH_NODO_RES_PERDA_MES CHECK (MES_REFERENCIA BETWEEN 1 AND 12),
CONSTRAINT CK_TB_FLASH_NODO_RES_PERDA_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_NODO_RES_PERDA';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'ALTER TABLE TB_FLASH_NODO_RESUMO_PERDA ADD CONSTRAINT UK_TB_FLASH_NODO_RES_PERDA 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_NODO_RES_PERDA_NODO';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_NODO_RES_PERDA_NODO ON TB_FLASH_NODO_RESUMO_PERDA (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_NODO_RES_PERDA_DATA';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_NODO_RES_PERDA_DATA ON TB_FLASH_NODO_RESUMO_PERDA (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_NODO_RES_PERDA_AMSD';
IF v_count = 0 THEN
EXECUTE IMMEDIATE 'CREATE INDEX IX_TB_FLASH_NODO_RES_PERDA_AMSD ON TB_FLASH_NODO_RESUMO_PERDA (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_NODO_RESUMO_PERDA';
IF v_count > 0 THEN
EXECUTE IMMEDIATE 'DROP TABLE TB_FLASH_NODO_RESUMO_PERDA CASCADE CONSTRAINTS PURGE';
END IF;
END;
-- +goose StatementEnd