sexta-feira, 12 de fevereiro de 2016

Como deletar registros duplicados no Oracle.

É muito comum termos esse tipo de problema em nossas tabelas, então segue uma uma query bem simples para apagar estes registros:

Select para localizar duplicados


  
    select campo,campo1,count(*) 
     from tabela having count(*) > 1 
    group by campo,campo1 





Como deletar duplicados


  
      delete from tab p1 
   where rowid < (select max(rowid) 
                    from tab1 p2 
                   where p1.primary_key = p2.primary_key); 





Qualquer dúvida é só comentar
ou enviar um e-mail. Abraços.

Aumentando o tamanho da TABLESPACE

E aí galera, tudo bem ? Bom vamos lá, muitos profissionais se deparam com problemas quando o tamanho da TABLESPACE esgota, aí na hora vira um furdunço, e não dá pra fazer mais nada, então para um profissional não ter problemas como este:

"ORA-01653: unable to extend table SUPER.CLI_PROCESSSOS by 128 in tablespace LEGAL_DATA" "ORA-06512: at line 4"

 É necessário que ele faça um monitoramento delas, pelo Enterprise Manager ou através das santas query's como essa:


  
 SELECT D.TABLESPACE_NAME "Nome",DF.FILE_NAME "Local do Arq", D.STATUS "Status",          
        TO_CHAR((A.BYTES / 1024 / 1024),'99,999,990.900')      "Tamanho (M)",
        TO_CHAR(((A.BYTES-DECODE(F.BYTES,NULL,0,F.BYTES))/1024/1024),'99,999,990.900') "Usado (M)"
  FROM SYS.DBA_TABLESPACES D
 INNER JOIN SYS.DBA_DATA_FILES DF  ON DF.TABLESPACE_NAME  = D.TABLESPACE_NAME
 INNER JOIN SYS.SM$TS_AVAIL A      ON A.TABLESPACE_NAME   = D.TABLESPACE_NAME
  FULL OUTER JOIN SYS.SM$TS_FREE F ON F.TABLESPACE_NAME   = D.TABLESPACE_NAME
 ORDER BY D.TABLESPACE_NAME; 



Com o retorno, você pode remanejar espaço entre elas, como por exemplo, tirar de uma e colocar em outra com o comando: Diminuindo a TABLESPACE SATIDAT1.DBF.


  
alter database datafile 'C:\ORACLEXE\ORADATA\XE\SSJR\SATIDAT1.DBF' resize 100M



Aumentando o tamanho da TABLESPACE SSJRDAT1.DBF.


  
alter database datafile 'C:\ORACLEXE\ORADATA\XE\SSJR\SSJRDAT1.DBF' resize 300M



Qualquer dúvida ou sugestão comentem, ou mandem e-mail, Abraços.