J'ai une exigence où j'ai besoin d'exécuter un script de mise à jour sur plusieurs partitions d'une table. Je l'ai écrit un script pour comme ci-dessous:ORA-14108: syntaxe de nom de table étendue étendue-partition interdite
mais il donne
ORA-14108: nom de la table partition étendue illégale syntaxe
Cause: partition à accès ne peut être spécifiée en utilisant son nom. L'utilisateur a tenté d'utiliser un numéro de partition ou une variable de liaison.
Action: Modifier déclaration vers une autre partition en utilisant son nom
Toute idée comment puis-je contourner cette erreur?
DECLARE
TYPE partition_names IS varray(1) OF varchar2(20);
curr_partition partition_names;
LENGTH integer;
BEGIN
curr_partition :=partition_names('SM_20090731');
LENGTH := curr_partition.count;
FOR i IN 1 .. LENGTH LOOP
dbms_output.put_line('Current Partition name is: '||curr_partition(i));
UPDATE TABLE_Y PARTITION (curr_partition(i))
SET PARTITION_KEY=TO_DATE('2017-08-21','YYYY-MM-DD')
WHERE ORDER_ID IN
(SELECT ORDER_ID
FROM TABLE_X);
END LOOP;
END;
/