50 lines
1.8 KiB
SQL
50 lines
1.8 KiB
SQL
--Apaga registros duplicados do estoque de taxa de embarque.
|
|
declare
|
|
column_exists exception;
|
|
pragma exception_init (column_exists , -01430);
|
|
begin
|
|
execute immediate 'DELETE FROM (
|
|
SELECT C.TAXPOL_ID, C.NUMTAXA,C.EMPRESA_ID, C.LOCALIDADE_ID, C.TAXPOLC_ID, C.ACTIVO
|
|
FROM TAXPOL C
|
|
WHERE C.ROWID <>
|
|
( SELECT MAX(ROWID) FROM TAXPOL CJ WHERE CJ.NUMTAXA = C.NUMTAXA
|
|
and CJ.EMPRESA_ID = C.EMPRESA_ID
|
|
and CJ.LOCALIDADE_ID = C.LOCALIDADE_ID
|
|
)
|
|
ORDER BY C.TAXPOL_ID, C.NUMTAXA
|
|
)';
|
|
exception when column_exists then null;
|
|
end;
|
|
/
|
|
declare
|
|
column_exists exception;
|
|
--ORA-01442: a coluna a ser modificada para NOT NULL já é NOT NULL
|
|
pragma exception_init (column_exists , -1442);
|
|
begin
|
|
execute immediate 'ALTER TABLE TAXPOL MODIFY ("NUMTAXA" NOT NULL ENABLE)';
|
|
exception when column_exists then null;
|
|
end;
|
|
/
|
|
declare
|
|
column_exists exception;
|
|
--ORA-02261: esta chave exclusiva ou primária já existe na tabela
|
|
pragma exception_init (column_exists , -02261);
|
|
begin
|
|
execute immediate 'ALTER TABLE "TAXPOL" ADD CONSTRAINT "NUMTAXA_UK" UNIQUE ("NUMTAXA", "EMPRESA_ID", "LOCALIDADE_ID")
|
|
USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
|
|
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
|
|
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
|
|
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
|
|
TABLESPACE "USERS" ENABLE';
|
|
exception when column_exists then null;
|
|
end;
|
|
/
|
|
declare
|
|
column_exists exception;
|
|
--ORA-02275: esta restrição referencial já existe na tabela
|
|
pragma exception_init (column_exists , -2275);
|
|
begin
|
|
execute immediate 'ALTER TABLE TAXPOL ADD CONSTRAINT "TAXPOLC_FK" FOREIGN KEY ("TAXPOLC_ID")
|
|
REFERENCES TAXPOLC ("TAXPOLC_ID") ENABLE';
|
|
exception when column_exists then null;
|
|
end; |