Sql 使用分区更新表

Sql 使用分区更新表,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,在更新一个表时,我们可以使用两个分区吗 例如,我尝试做类似的事情,但给我错误 update student PARTITION (ma_stu_class1, ma_stu_class2) set branch = 'R'||100; 如果有什么办法,请告诉我 提前感谢您不能像这样更新多个分区,因为-如果可以,图中分区部分的分区右侧会出现一个箭头,通过,-类似于update_set_子句图的上半部分 相反,您必须在where子句中使用分区键,例如,如果您的键为on,例如col1和col2,您将

在更新一个表时,我们可以使用两个分区吗

例如,我尝试做类似的事情,但给我错误

update student PARTITION (ma_stu_class1, ma_stu_class2)
set branch = 'R'||100;
如果有什么办法,请告诉我


提前感谢

您不能像这样更新多个分区,因为-如果可以,图中分区部分的分区右侧会出现一个箭头,通过,-类似于update_set_子句图的上半部分

相反,您必须在where子句中使用分区键,例如,如果您的键为on,例如col1和col2,您将执行以下操作:

update student
set    branch = 'R'||100
where  (col1, col2) in (('class1', 'a'), ('class2', 'b'));

不能在选择和更新中使用多个分区。相反,您可以使用下面的查询

MERGE INTO student S
USING (SELECT * FROM student PARTITION(ma_stu_class1)
UNION ALL
SELECT * FROM student PARTITION(ma_stu_class2)) S1
ON (S.CONNON_COLUMN = S1.COMMON_COLUMN)
WHEN MATCHED THEN
UPDATE 
SET 
branch = 'R'||100;
使用多个分区合并所有相同的表,并使用合并功能,您可以更新表的可能重复项