fixes bug#0011649
dev: emerson qua: Implementação para garantir a integridade da tabela TARIFA, podendo existir apenas um registro ativo com os seguintes valores: TRAMO_ID, MARCA_ID, CLASESERVICIO_ID, MONEDA_ID, VIGENCIATARIFA_ID, ORGAOCONCEDENTE_ID e RUTA_ID. git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/BD/FlyWay/trunk@83599 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
8f770b0257
commit
65f095e8b8
|
@ -0,0 +1,35 @@
|
|||
declare
|
||||
itemExists number;
|
||||
instrucao varchar2(255);
|
||||
begin
|
||||
itemExists := 0;
|
||||
|
||||
select count(constraint_name) into itemExists
|
||||
from all_constraints
|
||||
where upper(constraint_name) = upper('TARIFA_UNICA');
|
||||
|
||||
if itemExists > 0 then
|
||||
execute immediate 'ALTER TABLE TARIFA DROP CONSTRAINT TARIFA_UNICA';
|
||||
end if;
|
||||
|
||||
|
||||
select 'DROP INDEX '||OWNER||'.TARIFA_UNICA' into instrucao
|
||||
from all_indexes
|
||||
where upper(index_name) = upper('TARIFA_UNICA');
|
||||
|
||||
if instrucao is not null then
|
||||
execute immediate instrucao;
|
||||
end if;
|
||||
|
||||
end;/
|
||||
|
||||
declare
|
||||
column_exists exception;
|
||||
pragma exception_init (column_exists , -00001);
|
||||
begin
|
||||
execute immediate 'CREATE UNIQUE INDEX UNQ_TARIFA ON TARIFA (CASE WHEN ACTIVO = 1 THEN
|
||||
TRAMO_ID || MARCA_ID || CLASESERVICIO_ID || MONEDA_ID || VIGENCIATARIFA_ID || ORGAOCONCEDENTE_ID || RUTA_ID
|
||||
ELSE NULL END)';
|
||||
exception when column_exists then null;
|
||||
end;
|
||||
/
|
Loading…
Reference in New Issue