직업은 선물 트레이더

PL/SQL Oracle(오라클) 새로입력된(임시) 테이블 사용법

잊어버린 과거

PL/SQL Oracle(오라클) 새로입력된 테이블 사용법

오라클의 PL/SQL은 참 유용한 것 같습니다.

저도 이번에 처음 배웠는데요,

트리거 만들 때 이거 때문에 얼마나 고생했는지 ㄷㄷ;;

네이버 지식인에도 같은질문을 10개나 내공 100씩걸어서 올려도

아무도 답변 안달아주더군요 ㅠㅠ

그러다 이런저런 참고서 참고하다가 겨우 배웠는데요,

저같은분 꼭 있을겁니다...
특히 오타가 장난아닌 이번학기 제가 쓰게된
네임벨류에비해 형편없는 이 책을 사용하시는 분이라면 더더욱 말이죠.....

그래 그책은 오타 투성이었어..

새로입력된 테이블이라하면
그겁니다. 그..
테이블에 데이터가 들어가면(= insert into 사용시)
해당 테이블에 데이터가 들어가는건 당연하고,
더불어 임시테이블에도 데이터가 들어가는데요.
이 임시테이블를 사용하는 방법이 되겠습니다.

이건 이번 프로젝트과제 때 만들었던 트리거 내용중 하나입니다.
나무랄데없을정도로 상당히 간단한 트리거죠...

'광고계약' 테이블에 'insert' 명령어가 적용될 때
'해당튜플의 머천트규모'가 +1 되는 그런 트리거 입니다.

이때 '해당튜플'을 찾기위해 where 절에
insert로인해 만들어진 '임시테이블'을 사용해야 합니다.

제가 배웠던 책에는.. 오라클에선
'inserted' 를 사용하면 된다고 써있던데.. 너무당당하게;;; 
친절하게 글자로 설명까지 있지요.... 너무당당하게...
진짜 책에있는 그대로 써서 해봐도 안되서, 여기저기 보다보니..
그건 오라클 문법이 아니었습니다.
폴라로이드카메라+디지털카메라. 상상이라도 해봤을까??[바로가기]


위에보시는대로 입력된 임시테이블을 사용하려거든
':new'를 사용해야 됩니다.
테이블에 포함된
에트리뷰트를 사용하려거든 가운데 온점을 넣어 ':new.에트리뷰트이름'
이렇게 사용해야 됩니다.

아 근데 한가지 조건이 있는데요.
:new를 사용하려거든 위에사진에 보이시는 것 처럼
'DECLARE'윗부분에 'for each row'를 꼭 써주셔야 됩니다.
요거 안쓰시면 행 단위로 처리되기 때문은 아닌가..
하는 생각이 들게하는 오류가 뜹니다...

금방 삽입된 임시테이블 이야기를 했지만
반대로 지워진 임시 테이블을 참조하기 위해선 ':OLD'를
사용해야된다는거 알려드립니다''


별거아닌 소박한 지식이지만''
인터넷에서 급히 찾으시는 분들에게 도움이 되길 바랍니다ㅋ
당신히 급히찾게될, 당신만의 한정소품 미리보기[바로가기]