Renomeia uma partição ou subpartição. Esta operação altera apenas metadados, mas pode invalidar códigos de aplicação, procedimentos armazenados ou views que referenciem o nome antigo.
Sinopse
ALTER TABLE table_name RENAME PARTITION old_name TO new_name;
ALTER TABLE table_name RENAME SUBPARTITION old_name TO new_name;
Parâmetros
|
Parâmetro |
Obrigatório |
Descrição |
Exemplo |
|
|
Sim |
Nome da tabela particionada de destino. |
|
|
|
Sim |
Nome atual da partição ou subpartição a ser renomeada. |
|
|
|
Sim |
Novo nome para a partição ou subpartição. |
|
Observações de uso
Para executar este comando, seja o proprietário da tabela ou tenha a permissão
ALTERsobre ela.O comando
RENAME PARTITIONadquire umAccessExclusiveLockno nível da tabela na partição de destino. Esse bloqueio impede todas as operações de Linguagem de Manipulação de Dados (DML) e a maioria das operações de Linguagem de Definição de Dados (DDL). Execute este comando fora dos horários de pico para evitar o bloqueio de outras operações na tabela.O novo nome deve ser exclusivo na tabela. Nenhuma outra partição ou subpartição pode ter o mesmo nome.
Este comando é uma operação DDL: ele faz commit automaticamente e não pode ser revertido. Para desfazer a renomeação, execute outro comando
RENAMEcom o nome original.Se códigos de aplicação, procedimentos armazenados ou views referenciarem o nome antigo da partição, esses objetos falharão após a renomeação. Analise o impacto completamente e atualize todas as referências dependentes antes de renomear.
Exemplo
Este exemplo renomeia a subpartição sp_asia para sp_2023_asia em uma tabela particionada composta RANGE-LIST chamada customer_data.
Prepare the environment
Verificar o estado atual
Confirme se a subpartição sp_asia existe antes de renomeá-la.
SELECT SUBPARTITION_NAME FROM USER_TAB_SUBPARTITIONS
WHERE TABLE_NAME = 'CUSTOMER_DATA';
Saída esperada:
SUBPARTITION_NAME
-----------------
SP_ASIA
SP_2023_EUROPE
Executar a renomeação
ALTER TABLE customer_data RENAME SUBPARTITION sp_asia TO sp_2023_asia;
Verify the result
Perguntas frequentes
**Por que recebo o erro ORA-14078: partition name is already in use?**
O new_name especificado já está em uso por outra partição ou subpartição na mesma tabela. Escolha um nome exclusivo.
**Por que recebo o erro ORA-14076: partition name must be specified?**
O old_name especificado não existe. Execute a consulta de verificação prévia em Verificar o estado atual para validar o nome da partição.
Após a renomeação, por que minhas aplicações ou scripts param de funcionar?
O nome antigo da partição está codificado diretamente nessas aplicações ou scripts. Atualize todas as referências para usar o novo nome.
Próximos passos
ALTER TABLE ADD PARTITION: Adiciona uma nova partição a uma tabela particionada.
ALTER TABLE MERGE PARTITION: Mescla duas partições contíguas em uma única partição.
ALTER TABLE SPLIT PARTITION: Divide uma partição em duas partições.
ALTER TABLE DROP PARTITION: Exclui uma partição específica de uma tabela particionada.