我有一个要使用分区键更新的范围分区的Oracle表。
有没有一种方法可以动态创建更新脚本,该脚本将分区键考虑如下,而无需手动维护该脚本
update table where date between 'a' and 'b'
update table where date between 'b' and 'c'.
答案 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;
/