database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 26666 게시물 읽기
No. 26666
트리거에서 where문에 만족하는 값이 없는경우...
작성자
김종욱(lsgc1)
작성일
2006-05-07 19:57ⓒ
2006-05-07 20:15ⓜ
조회수
4,000

안녕하세요~

 

오늘 트리거 공부를 하다가 도저히 안되는 것이 있어서 이렇게 질문글을 올립니다.

 

CREATE OR REPLACE TRIGGER CANCLE_REV2
BEFORE DELETE ON 예약구간
FOR EACH ROW
DECLARE startp INTEGER;
endp INTEGER;
BEGIN
startp := 0;
endp := 0;

SELECT nvl(시작,0)
INTO startp
FROM 예약가능
WHERE 예약가능.열차ID = :old.열차ID AND
예약가능.객차 = :old.객차 AND
예약가능.좌석 = :old.좌석 AND
예약가능.끝 = :old.시작;

<후략>

 

위에서 보면 WHERE 문 안에 만족하는 값이 있는경우에는 잘 작동이 되나

 

만족하는 값이 없는 경우에는

 

ORA-01403: 데이터가 없습니다

 

라는 메시지가 뜨면서 안되네요... 어떻게 처리하는 방법이 없는지 궁금합니다...

 

만족하는 조건이 없을 경우에도 나름데로 처리하는 트리거를 만들려고 합니다..

이 글에 대한 댓글이 총 6건 있습니다.

sql%rowcount를 체크하시면 해당되는 row수를 알 수 있습니다.

 

if sql%rowcount > 0 then

   -- 긍정처리

else

  -- 부정처리

end

 

이런 식으로 하시면됩니다.

if 문의 문법은 확인해보세요. 정확치 않은 거니까..^^

 

m님이 2006-05-07 22:10에 작성한 댓글입니다. Edit

답변 감사합니다~ ^^

 

그런데... 만족하는 조건이 없을경우

 

저 Select From Where문에서 바로 멈춰버립니다.

 

IF문 가기 전에 ORA-01403 에러가 뜨면서 중지해버리네요... ㅡㅜ

김종욱(lsgc1)님이 2006-05-07 22:18에 작성한 댓글입니다.

죄송합니다.

제가 착각을 했습니다.

예외처리를 해야 합니다.

 

exception

   when NO_DATA_FOUND then

    -- 데이터가 없을때 예외처리 코드

 

책에서는 예외처리의 불편함이 있으니 단독 select .. into 도

암시적커서를 이용하라고 합니다.

자세한 내용은 Beginnig Oracle Programming의 PL/SQL부분을

참고하세요.. 많은 부분 도움이 되리라 생각합니다. ^^

m님이 2006-05-07 22:43에 작성한 댓글입니다. Edit

m님 답변 감사합니다~ ^^

 

일단 예외처리에 대해 공부좀 더 한 후 시도해 봐야할것 같습니다~ ^^

김종욱(lsgc1)님이 2006-05-07 22:44에 작성한 댓글입니다.
SELECT 시작
 INTO startp
 FROM 예약가능
 WHERE 예약가능.열차ID = :old.열차ID AND
  예약가능.객차 = :old.객차 AND
  예약가능.좌석 = :old.좌석 AND
  예약가능.끝 = :old.시작;
 EXCEPTION
  WHEN NO_DATA_FOUND THEN
   startp := 0;
 END EXCEPTION;

 

 

이렇게 하는것이 맞는것인지요 ㅡㅜ 예외처리를 몰라서..

김종욱(lsgc1)님이 2006-05-07 22:51에 작성한 댓글입니다.

아.. 해결 했습니다...

 

예외가 생기는 부분을 BEGIN ~ END;

 

로 묶어주고 그 사이 마지막부분에 예외처리 구문을 넣으니

 

잘 먹히네요~

 

m님덕분에 해결했습니다~ ^^ 감사드립니다~

김종욱(lsgc1)님이 2006-05-07 23:47에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
26669select 하면 테이블이 없다고 나옴... [1]
^^
2006-05-08
1310
26668v$sqltext 에 대해서... [5]
까먹지마
2006-05-07
7651
26667데이타 합해서 정리하는거 질문 좀... [4]
이진웅
2006-05-07
1935
26666트리거에서 where문에 만족하는 값이 없는경우... [6]
김종욱
2006-05-07
4000
26665date 형식 비교하는 방법? [2]
이진웅
2006-05-07
3548
266631 [3]
눈을떳다
2006-05-06
3399
26662toad 7.6으로 쿼리정리하는 기능 있나요? [1]
최규운
2006-05-06
1264
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.048초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다