Merge pull request 'fixes bug#AL-4214' (!168) from AL-4214 into master

Reviewed-on: utilidades/Flyway#168
Reviewed-by: Gleison da Cruz <gleison.cruz@totvs.com.br>
master
Célio de Souza Ribeiro JR 2024-08-09 21:37:13 +00:00
commit 232baad70d
2 changed files with 45 additions and 44 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>Flyway</artifactId> <artifactId>Flyway</artifactId>
<version>1.79.2</version> <version>1.79.3</version>
<distributionManagement> <distributionManagement>
<repository> <repository>

View File

@ -1,45 +1,46 @@
DECLARE declare
dup_val_on_index EXCEPTION; object_exists exception;
except_02291 EXCEPTION; except_01451 exception;
except_01442 exception;
PRAGMA EXCEPTION_INIT(dup_val_on_index, -00001); pragma exception_init (object_exists , -01430);
PRAGMA EXCEPTION_INIT(except_02291, -02291); pragma exception_init (except_01451 , -01451);
col_exists NUMBER := 0; pragma exception_init (except_01442 , -01442);
BEGIN begin
execute immediate 'ALTER TABLE TIPO_EVENTO_EXTRA ADD (INDQUANTVIASIMPRIMIR NUMBER(1))';
SELECT COUNT(*) INTO col_exists FROM all_tab_columns exception
WHERE table_name = 'TIPO_EVENTO_EXTRA' when object_exists then null;
AND column_name = 'INDQUANTVIASIMPRIMIR'; when except_01451 then null;
when except_01442 then null;
IF col_exists = 0 THEN end;
BEGIN /
EXECUTE IMMEDIATE 'ALTER TABLE tipo_evento_extra ADD (indquantviasimprimir NUMBER(1) DEFAULT 1)';
EXCEPTION
WHEN dup_val_on_index THEN declare
DBMS_OUTPUT.PUT_LINE('A coluna QUANTIDADEVIASIMPRIMIR já existe.'); dup_val_on_index exception;
WHEN OTHERS THEN except_02291 exception;
RAISE;
END; pragma exception_init (dup_val_on_index , -00001);
pragma exception_init (except_02291 , -02291);
begin
BEGIN execute immediate 'UPDATE TIPO_EVENTO_EXTRA SET INDQUANTVIASIMPRIMIR = 1 WHERE INDQUANTVIASIMPRIMIR IS NULL';
EXECUTE IMMEDIATE 'UPDATE tipo_evento_extra SET indquantviasimprimir = 1'; exception
EXCEPTION when dup_val_on_index then null;
WHEN except_02291 THEN when except_02291 then null;
DBMS_OUTPUT.PUT_LINE('Erro ao atualizar valores padrão.'); end;
WHEN OTHERS THEN /
RAISE;
END; declare
dup_val_on_index exception;
-- Ajusta o valor da coluna para 2 nos casos específicos de "Vale Cobrador" e "Sangria" RETRO para os CARDS: AL-3449 e AL-2817 except_02291 exception;
BEGIN
EXECUTE IMMEDIATE 'UPDATE tipo_evento_extra SET indquantviasimprimir = 2 WHERE desctipoevento IN (''VALE COBRADOR'', ''SANGRIA'')'; pragma exception_init (dup_val_on_index , -00001);
EXCEPTION pragma exception_init (except_02291 , -02291);
WHEN except_02291 THEN begin
DBMS_OUTPUT.PUT_LINE('Erro ao ajustar valores para "Vale Cobrador" e "Sangria".'); execute immediate
WHEN OTHERS THEN 'UPDATE tipo_evento_extra SET indquantviasimprimir = 2 WHERE desctipoevento IN (''VALE COBRADOR'', ''SANGRIA'') AND (INDQUANTVIASIMPRIMIR IS NULL OR INDQUANTVIASIMPRIMIR =1)';
RAISE; exception
END; when dup_val_on_index then null;
END IF; when except_02291 then null;
END; end;
/ /