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?
Pergunta
Danzera
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.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.