2017-05-18 3 views
0

테이블을 업데이트하는 동안 두 개의 파티션을 사용할 수 있습니까?파티션을 사용하여 테이블 업데이트

예를 들어, 나는 그런 식으로 뭔가를하려고하지만 오류가 발생합니다.

update student PARTITION (ma_stu_class1, ma_stu_class2) 
set branch = 'R'||100; 

그렇게 할 방법이 있으면 알려 주시기 바랍니다. 사전에

감사

+0

의 사용 가능한 복제 [업데이트 분할 된 테이블 오라클] (http://stackoverflow.com/questions/22847652/updating- 파티셔닝 된 테이블 - 오라클) – XING

답변

0

당신은 documentation에 따라, 같은 여러 파티션을 업데이트 할 수 없습니다 - 당신이 화살의 PARTITION (partition) 일부 내부 partition의 오른쪽에서 나오는이 될 수 있다면 partition의 왼쪽에있는 ,을 통해 다시 볼 수있는 다이어그램 - update_set_clause 다이어그램의 위쪽 절반과 비슷합니다.

대신 where 절에서 파티션 키를 사용해야합니다. 예를 들어, col1 및 col2 키가 켜져 있다면 다음을 수행하십시오.

1

선택 및 업데이트에는 여러 파티션을 사용할 수 없습니다. 대신 아래의 쿼리를 사용할 수 있습니다.

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 같은 테이블에 여러 파티션과 테이블을 업데이트 할 수 있습니다 기능을 통합하여

관련 문제