【发布时间】:2018-02-11 07:15:50
【问题描述】:
我有一个要求,我需要在表的多个分区上运行更新脚本。我为它写了一个脚本如下:
但它给了
ORA-14108:非法的分区扩展表名语法
原因:要访问的分区只能使用其名称指定。用户试图使用分区号或绑定变量。
操作:修改语句以使用其名称引用分区
知道如何规避这个错误吗?
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;
/
【问题讨论】:
标签: database oracle plsql oracle11g partitioning