Procédure stockée partitions
Bonjour à tous et à toutes,
J'essaie de créer un procédure qui permet le déplacement de la dernière partition d'un ensemble des tables d'un tablespace vers un autre tablespace.
la syntaxe est la suivante :
Code:
alter table TTTT move partition LLLL tablespace YYYY;
La partition LLLL je l'ai remplacé par une requête qui me cherche la dernière partition de la table.
Le problème c'est que ma procédure ne marche pas , je ne sais pas pour quelle raison, pourriez vous me dire si la syntaxe de ma procédure est correcte ?
Code:
1 2 3 4 5 6 7 8 9
| CREATE OR REPLACE PROCEDURE MOVE_PARTITIONS IS
DECLARE
r varchar2(15);
BEGIN
for r in (select TABLE_NAME from PARAMETRE_TABLESPACE where TABLESPACE_DATA_CIBLE='XXXX') loop
alter table r move partition (Select PARTITION_NAME From (Select PARTITION_POSITION,PARTITION_NAME, Max(PARTITION_POSITION) over (partition by TABLE_NAME) As MAX_P From SYS.USER_TAB_PARTITIONS Where TABLE_NAME='r' And Nvl(NUM_ROWS,0) = 0) Where PARTITION_POSITION = MAX_P) tablespace YYYY;
end loop;
NULL;
END MOVE_PARTITIONS; |
Merci ^^