Atualização de migrations de objetos de banco de dados.
This commit is contained in:
@@ -0,0 +1,71 @@
|
||||
-- +goose Up
|
||||
-- +goose StatementBegin
|
||||
CREATE OR REPLACE PROCEDURE VITRUVIO.PRC_FLASH_ATUALIZA_PERDA_DONO (
|
||||
p_data_inicial IN DATE,
|
||||
p_data_final IN DATE,
|
||||
p_empresas IN VARCHAR2 DEFAULT NULL,
|
||||
p_divisao IN VARCHAR2 DEFAULT NULL,
|
||||
p_cgos IN VARCHAR2 DEFAULT NULL
|
||||
) AS
|
||||
v_inicio_execucao DATE := SYSDATE;
|
||||
BEGIN
|
||||
DBMS_OUTPUT.PUT_LINE('Iniciando PRC_FLASH_ATUALIZA_PERDA_DONO em ' || TO_CHAR(v_inicio_execucao, 'DD/MM/YYYY HH24:MI:SS'));
|
||||
DBMS_OUTPUT.PUT_LINE('Período: ' || TO_CHAR(p_data_inicial, 'DD/MM/YYYY') || ' até ' || TO_CHAR(p_data_final, 'DD/MM/YYYY'));
|
||||
|
||||
FOR r IN (
|
||||
SELECT CODIGO_EXTERNO AS CODIGO
|
||||
FROM vitruvio.vi_lojas V
|
||||
WHERE p_empresas IS NULL
|
||||
OR CODIGO_EXTERNO IN (
|
||||
SELECT REGEXP_SUBSTR(p_empresas, '[^,]+', 1, LEVEL)
|
||||
FROM dual
|
||||
CONNECT BY REGEXP_SUBSTR(p_empresas, '[^,]+', 1, LEVEL) IS NOT NULL
|
||||
)
|
||||
ORDER BY CODIGO_EXTERNO
|
||||
) LOOP
|
||||
BEGIN
|
||||
DBMS_OUTPUT.PUT_LINE('Carregando perda da empresa: ' || r.codigo);
|
||||
PRC_FLASH_CARGA_DADOS_PERDA(
|
||||
p_data_inicial => p_data_inicial,
|
||||
p_data_final => p_data_final,
|
||||
p_empresa => r.codigo,
|
||||
p_divisao => p_divisao,
|
||||
p_cgos => p_cgos
|
||||
);
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('Erro ao carregar empresa ' || r.codigo || ': ' || SQLERRM);
|
||||
RAISE;
|
||||
END;
|
||||
END LOOP;
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('Carregando stage de metas de perda...');
|
||||
PRC_FLASH_CARGA_META_PERDA_STG(p_data_inicial => p_data_inicial, p_data_final => p_data_final);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('Carregando metas finais de perda...');
|
||||
PRC_FLASH_CARGA_META_PERDA(p_data_inicial => p_data_inicial, p_data_final => p_data_final);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('Atualizando resumo de perda...');
|
||||
PRC_FLASH_CARGA_RESUMO_PERDA(p_data_inicial => p_data_inicial, p_data_final => p_data_final);
|
||||
|
||||
DBMS_OUTPUT.PUT_LINE('PRC_FLASH_ATUALIZA_PERDA_DONO finalizada em ' || TO_CHAR(SYSDATE, 'DD/MM/YYYY HH24:MI:SS'));
|
||||
DBMS_OUTPUT.PUT_LINE('Tempo em segundos: ' || ROUND((SYSDATE - v_inicio_execucao) * 86400, 2));
|
||||
|
||||
EXCEPTION
|
||||
WHEN OTHERS THEN
|
||||
DBMS_OUTPUT.PUT_LINE('Erro geral na PRC_FLASH_ATUALIZA_PERDA_DONO: ' || SQLERRM);
|
||||
RAISE;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
|
||||
-- +goose Down
|
||||
-- +goose StatementBegin
|
||||
DECLARE
|
||||
v_count NUMBER;
|
||||
BEGIN
|
||||
SELECT COUNT(*) INTO v_count FROM user_objects WHERE object_name = 'PRC_FLASH_ATUALIZA_PERDA_DONO' AND object_type = 'PROCEDURE';
|
||||
IF v_count > 0 THEN
|
||||
EXECUTE IMMEDIATE 'DROP PROCEDURE PRC_FLASH_ATUALIZA_PERDA_DONO';
|
||||
END IF;
|
||||
END;
|
||||
-- +goose StatementEnd
|
||||
Reference in New Issue
Block a user