Ich habe eine Anforderung, wo ich ein Update-Skript über mehrere Partitionen einer Tabelle ausführen muss. Ich habe ein Skript, denn es steht geschrieben, wie unten:ORA-14108: ungültige Partition erweiterte Tabellenname Syntax
aber es gibt
ORA-14108: illegale Partitions erweiterten Tabellennamenssyntax
Ursache: Partition nur dann angegeben werden kann zugegriffen werden mit seinem Namen. Der Benutzer hat versucht, eine Partitionsnummer oder eine Bind-Variable zu verwenden.
Aktion: Anweisung Ändern einer Partition beziehen über ihren Namen
Jede Idee, wie kann ich diesen Fehler umgehen?
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;
/