2012-01-27 4 views
3

"Oracle에서 SQL 명령을 작성하여"LOADDATE "값을 내 테이블의"UPDATEDATE "값과 동일하게 업데이트합니다. 내가 여기있는 작품 :오라클의 동일한 행에있는 값을 사용하여 열 업데이트

BEGIN 
    UPDATE LOAD_SETTINGS 
    SET 
     LOADDATE = (
     SELECT UPDATEDATE 
     FROM LOAD_SETTINGS 
     WHERE 
      MODEL = 'A001' 
      AND OBJECT = 'A' 
    ) 
    WHERE 
     MODEL = 'A001' 
     AND OBJECT = 'A'; 
    COMMIT; 
END; 

내가 오라클에 대해 확실히 알고있는 한 가지는 내가 모르는 것이 많다는 것입니다. 필자가 익숙하지 않은 오라클의 기능을 사용하여 더 나은 방법이 있습니까? 하위 쿼리를 사용하지 않아도 될까요? 아니면 이것이 길일 것인가?

감사합니다. 서브 쿼리의 where 절은 외부에 부속 선택에 대한 필요가 없습니다 어디에 동일하기 때문에

답변

9

단지 ModelObject 그것을 사용하는 것이 좋다 VARCHAR입니다 직접

UPDATE LOAD_SETTINGS 
SET 
    LOADDATE = UPDATEDATE 

WHERE 
    MODEL = 'A001' 
    AND OBJECT = 'A'; 
+0

와우. 나는 그 하나를 지나치게 생각하고 있었다. 분명히, 나에게 휴식을 취할 때가되었습니다. 감사! – Paul

0
UPDATE LOAD_SETTINGS 
SET LOADDATE = UPDATEDATE 
WHERE MODEL LIKE 'A001' 
AND OBJECT LIKE 'A'; 

때문에 열을 참조 = 대신 LIKE입니다.

관련 문제