Ir para conteúdo
Fórum Script Brasil

Danzera

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Tudo que Danzera postou

  1. Danzera

    Partitions

    Amigos, Tenho o seguinte código: Procedure PartitionOperation(vTabela in varchar2, vTipo in varchar2, vMes in varchar2, vAno in varchar2) is /* Variáveis */ v_com_in VARCHAR2(150); v_com_fi varchar2(150); Begin v_com_in := 'alter table '|| vTabela; if vTipo = 'ADD' then v_com_fi := v_com_in || ' add partition P_' || to_char(vAno)|| '_' || lpad(to_char(vMes),2,0) || ' VALUES LESS THAN (' || to_char(add_months(to_date(lpad(to_char(vMes),2,0) || vAno,'MMYYYY'),1),'YYYY') || ',' || to_char(add_months(to_date(lpad(to_char(vMes),2,0) || vAno,'MMYYYY'),1),'MM') || ') UPDATE INDEXES'; elsif vTipo = 'DROP' then v_com_fi := v_com_in || ' Drop PARTITION P_' || vAno || '_' || lpad(vMes,2,0) || ' UPDATE INDEXES'; elsif vTipo = 'TRUNCATE' then v_com_fi := v_com_in || ' Truncate PARTITION P_' || vAno || '_' || lpad(vMes,2,0) || ' UPDATE INDEXES'; end if; EXECUTE IMMEDIATE v_com_fi; Porem está me retornando o erro (ORA-02149 - Partição não encontrado para o objeto). Esse elseif em destaque está tentando dropar um cara que não existe, gostaria de saber como faço ao invés de usar o execute immediate eu coloque uma condição caso não exista não faça o drop? Desde já agradeço.
×
×
  • Criar Novo...