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 24863 게시물 읽기
No. 24863
트리거 실행시, SCOTT.TEST1가 변화하고 있어서 트리거/함수가 이를 볼 수 없습니다.
작성자
이승배
작성일
2005-11-15 19:09
조회수
1,748

TEST1이라는 테이블에 TRG_TEST1이라는 트리거를 하나 생성하고

M_DIV가 업데이트 될때마다 TEST1의 M_VALUE에 값을 넣도록 코딩해 놨거든요.

 

근데..

UPDATE TEST1 SET M_DIV = M_DIV WHERE M_ID = '1234';

라고 업데이트를 발생시키니까..

SCOTT.TEST1가 변화하고 있어서 트리거/함수가 이를 볼 수 없습니다.

이런 에러가 발생하면서 실행이 되질 않네요.

 

아래는 트리거 내용입니다.

DECLARE
TMP_VALUE varchar(50);

BEGIN
TMP_VALUE := '테스트VALUE';
UPDATE TEST1 SET M_VALUE = :TMP_VALUE WHERE M_ID = :OLD.M_ID;

EXCEPTION
WHEN OTHERS THEN
-- Consider logging the error and then re-raise
RAISE;
END;

 

토드로 작성했고

When Updating Columns는 M_DIV로 지정했습니다.

오라클은 트리거가 걸린 테이블을 트리거에서 제어 못하나요???

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

 

for each row 트리거는 자신의 트리거에서 자신을 변경 못합니다...

 

sybase계열(ms-sql포함)은

트리거가 3종류이죠...

오라클로 따지면..

after에 all row 형태입니다.

단 sybase 계열은 가상 행이 아닌 가상 행집합을 지원합니다.

그에 반하여 오라클은 가상 행을 지원하고

before 및 after를 지원합니다.

 

또한 이러한 모델은 제약조건과 잘 어우러지는 장점이 있고

단점으로는 표현력이 행 중심이라는 점이 있습니다.

 

자세한 사항은 책을 읽으시던가...

 

아니면 원하시는 바를 구체적으로 올려주시면 해결책을 제시하여 드릴 수 있습니다.

한가지 명심하실 점은

sybase계열에서 가능한 모든 형태의 트리거 작업이 구현 및 성능 상의 차이는 있어도 오라클에서도 구현이 가능합니다.

 

김흥수(protokhs)님이 2005-11-16 02:57에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
24866DB Link 를 사용하여 모든테이블을 들고 오고싶은데요.. [2]
C1한잔
2005-11-16
2016
24865일반변수 사용시 스태틱 sql.. [1]
백수환
2005-11-16
909
24864imp시 table이름을 다르게 줄 수있나여? [1]
멍충이
2005-11-16
1142
24863트리거 실행시, SCOTT.TEST1가 변화하고 있어서 트리거/함수가 이를 볼 수 없습니다. [1]
이승배
2005-11-15
1748
24862tnsping works but sqlplus gives me 12154 error [2]
윤종수
2005-11-15
2378
24861쿼리를 바꾸면 <03113 : 통신채널에 EOF가 있습니다> 에러가.. [1]
신동민
2005-11-15
1989
24859아카이브 모드 맞는지요? [6]
파란나라
2005-11-15
2343
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다