在更新表格时可以使用两个分区吗?使用分区更新表格
例如,我尝试做类似的事情,但给我错误。
update student PARTITION (ma_stu_class1, ma_stu_class2)
set branch = 'R'||100;
请让我知道是否有任何方法可以做到这一点。
在此先感谢
在更新表格时可以使用两个分区吗?使用分区更新表格
例如,我尝试做类似的事情,但给我错误。
update student PARTITION (ma_stu_class1, ma_stu_class2)
set branch = 'R'||100;
请让我知道是否有任何方法可以做到这一点。
在此先感谢
不能更新这样的多个分区,按照该documentation - 如果你能,就不会有一个箭头出来的partition
的右手边的PARTITION (partition)
部分内该图将通过,
将您带回到partition
的左侧 - 类似于update_set_clause图的上半部分。
相反,您必须在where子句中使用分区键,例如如果你的密钥开启,比如col1和col2,你应该这样做:
update student
set branch = 'R'||100
where (col1, col2) in (('class1', 'a'), ('class2', 'b'));
你不能在select和update中使用多个分区。相反,您可以使用下面的查询。
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;
UNION ALL同桌多个分区,并使用合并功能,您可以更新表
的可能的复制[更新分区表甲骨文(http://stackoverflow.com/questions/22847652/updating-分区表-Oracle)的 – XING