프로 시저에서 두 개의 update 문을 작성했습니다. 몇 가지 이상한 이유에 대한 첫 번째 업데이트 성명은 레코드의 일부만 업데이트 (기본적으로 나는 100,000 개 이상의 행을 업데이 트). 그래서 두 번째 update 문은 항상 잘 작동합니다. 브레인 스토밍했지만 절차가 성공적으로 완료되었지만 문제가 무엇인지 알지 못합니다. 얼마나 많은 사람들이 업데이트를 받았는지와 얼마나 많은 것을 확인했는지와 같은 유효성 검사를 수행 할 수있는 방법이 있습니까? 기록 성공적으로 모든 시간 조건 불구을 업데이트업데이트 과정 중 일부가 프로 시저에서 작동하지 않습니다.
1 업데이트 문 (어떤 업데이트 때로는 일부 기록)
UPDATE /*+PARALLEL(A,10,2)*/ VV_ACT_CALL_DET_DIS_EXTRACT A SET PRIORITY =
(SELECT P.PRIORITY
FROM VV_ACT_CALL_DET_DIS P
WHERE P.CALL_ID = A.CALL_ID
AND P.PRODUCT_ID = A.PRODUCT_ID
AND P.IS_DELETED = A.IS_DELETED
AND ROWVAL = 1)
WHERE EXTRACT_STATUS = 'PENDING'
AND EXISTS
(SELECT B.PRIORITY
FROM VV_ACT_CALL_DET_DIS B
WHERE B.CALL_ID=A.CALL_ID
AND B.PRODUCT_ID = A.PRODUCT_ID
AND B.IS_DELETED = A.IS_DELETED);
2 업데이트 문은
UPDATE /*+PARALLEL(A,10,2)*/ VV_ACT_CALL_DET_DIS_EXTRACT A SET TYPE =
(SELECT P.TYPE_VAL
FROM VV_ACT_CALL_DET_DIS P
WHERE P.CALL_ID = A.CALL_ID
AND P.PRODUCT_ID = A.PRODUCT_ID
AND P.IS_DELETED = A.IS_DELETED
AND ROWVAL = 1)
WHERE EXTRACT_STATUS = 'PENDING'
AND EXISTS
(SELECT B.TYPE_VAL
FROM VV_ACT_CALL_DET_DIS B
WHERE B.CALL_ID = A.CALL_ID
AND B.PRODUCT_ID = A.PRODUCT_ID
AND B.IS_DELETED = A.IS_DELETED);
'update ... (TYPE, PRIORITY) = (SELECT P.TYPE_VAL, P.PRIORITY ...)' – Mike
그 동일한 Rene, 우선 우선 순위 필드를 업데이트하고 있습니다. 입력란 –
@ 마이크 예, 시도 할 것입니다,하지만 유효성 검사에 대한 아이디어를 공유하는 경우 도움이 될 것입니다 –