Envoyé par
skuatamad
Commencez par écrire la requête SQL qui vous donne le nom des tables avec le nom des partitions à déplacer.
Ensuite vérifiez la syntaxe de la
boucle for, et utilisez
execute immediate pour exécuter le DDL (alter table) dans une procédure.
Merci infiniment pour la réponse ,
En effet cette requête marche bien, elle affiche tous les noms des tables pour lesquelles je veux déplacer la dernière partition:
SELECT TABLE_NAME FROM PARAMETRE_TABLESPACE WHERE TABLESPACE_DATA_CIBLE='XXXX'
Ensuite celle là m'affiche la dernière partition de la table aussi :
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
là je suis bloquée dans la procédure , je ne vois pas pourquoi ça ne marche pas avec la boucle que j'ai mis .
Prière de m'aider ou de me donner quelques idées pour avancer ...
Merci
Partager