From 90e342d2b8cc2782a1ed93eab316cb6e37beec20 Mon Sep 17 00:00:00 2001 From: valdir Date: Wed, 8 Apr 2020 17:21:07 +0000 Subject: [PATCH] 0018935: Cadastro de Cliente - NumFidelidade bug#18935 dev:thiago.veloso qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/BD/FlyWay/trunk@101152 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../migration/V20200704_1605__mantis18935.sql | 69 +++++++++++++++++++ .../migration/V20200704_1605__mantis18935.sql | 47 +++++++++++++ 2 files changed, 116 insertions(+) create mode 100644 src/db/migration/V20200704_1605__mantis18935.sql create mode 100644 src/db/postgresql/migration/V20200704_1605__mantis18935.sql diff --git a/src/db/migration/V20200704_1605__mantis18935.sql b/src/db/migration/V20200704_1605__mantis18935.sql new file mode 100644 index 000000000..982ab4e36 --- /dev/null +++ b/src/db/migration/V20200704_1605__mantis18935.sql @@ -0,0 +1,69 @@ +--CRIA NOVA COLUNA +declare + column_exists exception; + pragma exception_init (column_exists , -01430); +begin + execute immediate 'ALTER TABLE TARJETA_FIDELIDAD ADD (NUMTARJETA_BACKUP VARCHAR(30))'; + exception when column_exists then null; +end; +/ +-- COPIA OS VALORES +declare + dup_val_on_index exception; + except_02291 exception; + pragma exception_init (dup_val_on_index , -00001); + pragma exception_init (except_02291 , -02291); +begin + execute immediate 'UPDATE TARJETA_FIDELIDAD SET NUMTARJETA_BACKUP = NUMTARJETA'; + exception + when dup_val_on_index then null; + when except_02291 then null; +end; +/ +--LIMPA O COLUNA +declare + dup_val_on_index exception; + except_02291 exception; + pragma exception_init (dup_val_on_index , -00001); + pragma exception_init (except_02291 , -02291); +begin + execute immediate 'UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NULL'; + exception + when dup_val_on_index then null; + when except_02291 then null; +end; +/ +--ALTERA A COLUNA +declare + column_exists exception; + pragma exception_init (column_exists , -01430); +begin + execute immediate 'ALTER TABLE TARJETA_FIDELIDAD MODIFY (NUMTARJETA VARCHAR(30))'; + exception when column_exists then null; +end; +/ +--ATUALIZA A COLUNA ANTIGA COM OS VALORES DA NOVA +declare + dup_val_on_index exception; + except_02291 exception; + pragma exception_init (dup_val_on_index , -00001); + pragma exception_init (except_02291 , -02291); +begin + execute immediate 'UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NUMTARJETA_BACKUP'; + exception + when dup_val_on_index then null; + when except_02291 then null; +end; +/ +-- ALTER TABLE DROP COLUMN +declare + object_exists exception; + except_00904 exception; + pragma exception_init (object_exists , -01430); + pragma exception_init (except_00904 , -00904); +begin + execute immediate 'ALTER TABLE TARJETA_FIDELIDAD DROP COLUMN NUMTARJETA_BACKUP'; + exception + when object_exists then null; + when except_00904 then null; +end; diff --git a/src/db/postgresql/migration/V20200704_1605__mantis18935.sql b/src/db/postgresql/migration/V20200704_1605__mantis18935.sql new file mode 100644 index 000000000..1fc8a9857 --- /dev/null +++ b/src/db/postgresql/migration/V20200704_1605__mantis18935.sql @@ -0,0 +1,47 @@ +--CRIA NOVA COLUNA +DO $$ +BEGIN + ALTER TABLE TARJETA_FIDELIDAD ADD (NUMTARJETA_BACKUP VARCHAR(30)); + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +-- COPIA OS VALORES +DO $$ +BEGIN + UPDATE TARJETA_FIDELIDAD SET NUMTARJETA_BACKUP = NUMTARJETA; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +--LIMPA O COLUNA +DO $$ +BEGIN + UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NULL; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +--ALTERA A COLUNA +DO $$ +BEGIN + ALTER TABLE TARJETA_FIDELIDAD MODIFY (NUMTARJETA VARCHAR(30)); + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +--ATUALIZA A COLUNA ANTIGA COM OS VALORES DA NOVA +DO $$ +BEGIN + UPDATE TARJETA_FIDELIDAD SET NUMTARJETA = NUMTARJETA_BACKUP; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; +/ +-- ALTER TABLE DROP COLUMN +DO $$ +BEGIN + ALTER TABLE TARJETA_FIDELIDAD DROP COLUMN NUMTARJETA_BACKUP; + EXCEPTION WHEN duplicate_column THEN NULL; +END +$$; \ No newline at end of file