Oracle动态创建用于更新分区表的脚本

时间:2018-10-01 14:52:58

标签: sql oracle performance sql-update

我有一个要使用分区键更新的范围分区的Oracle表。

有没有一种方法可以动态创建更新脚本,该脚本将分区键考虑如下,而无需手动维护该脚本

  update table where date between 'a' and 'b'

  update table where date between 'b' and 'c'.

1 个答案:

答案 0 :(得分:0)

我认为没有必要在where clause中指定范围来更新单个分区。您可以动态使用 partition_extension_clause of update

BEGIN
     FOR r IN (
          SELECT partition_name
          FROM user_tab_partitions
          WHERE table_name = 'YOUR_TABLE'
     ) LOOP

    EXECUTE IMMEDIATE 'UPDATE YOUR_TABLE (' || r.partition_name || ')  SET somecol = somevalue where someother_clause';

      COMMIT; --if it's necessary
     END LOOP;
END;
/