Pular para o conteúdo
  • Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 15 anos, 7 meses atrás por juliano_sf.
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #95426
    juliano_sf
    Participante

      Pessoal,

      Uso Oracle SE 10.2.0.4, e estou montando uma rotina de limpeza que deleta um monte de registros e depois faz um shrink em várias tabelas. Porém, em uma tabela não estou conseguindo. Pior que esta tabela não tem nenhum campo LONG, BLOB, ou similares. Segue a estrutura da tabela:

      SQL> desc titulos
      Name Null? Type
      —————————————– ——– —————————-
      INDICE NOT NULL NUMBER(12)
      NUM_DOC VARCHAR2(10)
      TITULO VARCHAR2(20)
      PARCELA VARCHAR2(2)
      PARCELAS VARCHAR2(2)
      MES VARCHAR2(2)
      ANO VARCHAR2(4)
      EMISSAO DATE
      VENCIMENTO DATE
      PRORROGACAO DATE
      VALOR NUMBER(12,2)
      DATA_MOVIMENTO DATE
      PAGAMENTO DATE
      DESCONTO_PAGAMENTO_V NUMBER(12,2)
      TAXA_JUROS NUMBER(6,2)
      JUROS NUMBER(12,2)
      DESCONTO_FINANCEIRO_P NUMBER(12,2)
      DESCONTO_FINANCEIRO_V NUMBER(12,2)
      CREDITO NUMBER(12,2)
      VALOR_CHEQUE NUMBER(12,2)
      VALOR_DINHEIRO NUMBER(12,2)
      VALOR_PAGO NUMBER(12,2)
      SALDO NUMBER(12,2)
      COD_VENDEDOR VARCHAR2(30)
      MATRICULA_VENDEDOR VARCHAR2(15)
      VP_COBRANCA NUMBER(6,2)
      COD_SUPER VARCHAR2(25)
      MATRICULA_SUPERVISOR VARCHAR2(15)
      SP_COBRANCA NUMBER(6,2)
      COD_GERENTE VARCHAR2(20)
      MATRICULA_GERENTE VARCHAR2(15)
      GP_COBRANCA NUMBER(6,2)
      COD_DIRETOR VARCHAR2(18)
      MATRICULA_DIRETOR VARCHAR2(15)
      DP_COBRANCA NUMBER(6,2)
      LOCAL_COBRANCA VARCHAR2(2)
      COD_CLIENTE VARCHAR2(6)
      NUMERO_BANCO VARCHAR2(20)
      STATUS VARCHAR2(1)
      OBSERVACAO VARCHAR2(200)
      RESP_PAG VARCHAR2(1)
      COD_MOTORISTA VARCHAR2(3)
      NUM_RELATORIO VARCHAR2(12)
      CHEQUE_PAGO NUMBER(12,2)
      DINHEIRO_PAGO NUMBER(12,2)
      DESCONTO NUMBER(12,2)
      TOTAL_PAGO NUMBER(12,2)
      TIPO_CLIENTE VARCHAR2(1)
      P_DANOS VARCHAR2(1)
      EXTERNO VARCHAR2(1)
      CODIGO_BARRA VARCHAR2(47)
      ORDEM_PAG VARCHAR2(16)
      JUROS_DEV NUMBER(12,2)
      DIF_JUROS NUMBER(12,2)
      PAG_JUROS NUMBER(12,2)
      ST_JUROS VARCHAR2(1)
      TIPO_DOC VARCHAR2(2)
      DOC_DATA DATE
      COD_EMP VARCHAR2(3)
      AGE_CODIGO NUMBER(15)
      DATA_FUNDO_PERDIDO DATE

      Quando eu tento dar o comando, volta este erro:
      SQL> alter table titulos enable row movement;

      Table altered.

      Elapsed: 00:00:00.01
      SQL> alter table titulos shrink space;
      alter table titulos shrink space
      *
      ERROR at line 1:
      ORA-10631: SHRINK clause should not be specified for this object

      Elapsed: 00:00:00.02

      Alguma idéia?

      Abraços,

      Juliano

      #95431
      Avatar photoRegis Araujo
      Participante

        Fala Juliano..!

        Seguinte.. tem mviews para esta tabela? Triggers?
        Verifique os indices para esta tabela.. se houver algum indice baseado em funcao.. dropa ele roda o shrink e depois recria..!!!

        Abraços..!

        #95434
        juliano_sf
        Participante

          Grandeee!

          matou a xarada! Tem sim um indice baseado em funcao neste tabela. Matei o indice e o shrink funcionou!

          Valeu!

          Juliano

        Visualizando 3 posts - 1 até 3 (de 3 do total)
        • Você deve fazer login para responder a este tópico.