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 23985 게시물 읽기
No. 23985
트리거 질문 있어요.
작성자
오라초보
작성일
2005-09-07 11:21
조회수
1,982

안녕하세요.

제가 A라는 테이블에 트리거를 두어서 insert 하기 전에 데이타가 중복 된것이 있으면 기존에 있는 키

값을 가져와서 키값을 바꿔준후 insert 하고 싶습니다.

 

테이블 A 구조

key : seq 한 값( PK 값)

name1 varchar(10),

name2 varchar(10),

name3 varchar(10),

regdate varchar(10) //등록일

 

트리거 입니다.

 

REATE OR REPLACE TRIGGER A_trigger
BEFORE
INSERT ON A

FOR EACH ROW
DECLARE

exist_count NUMBER;
v_key VARCHAR2(20);

BEGIN

SELECT count(*), key

INTO exitst_count, v_key
FROM A
where name1= :new.name1
and name2= :new.name2
and name3= :new.name3;

if exist_count > 0 then set :new.key_id = v_key ;

END;

 

 

위와 같이 작성하면 오류가 납니다.

오류 내용은 "PL/SQL: ORA-00922: 누락된 또는 부적합한 옵션"입니다.

 

중복일 경우에는 key값을 기존의 값으로 변경을 하고 싶습니다.

이런 경우에는 어떻게 처리를 해야 하나요?

 

 

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

제가 질문을 이해하지 못했네요. ^^;

 

if exist_count > 0 then

   :new.key_id := v_key ;

end if

 

아마도(amado)님이 2005-09-07 12:16에 작성한 댓글입니다.
이 댓글은 2005-09-07 12:47에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
23988tablespace 관련 질문 [1]
2005-09-07
2100
23987아~ exp, imp 어렵다. [3]
핸시기
2005-09-07
3153
23986벤치마크 [4]
ohyouknow
2005-09-07
1421
23985트리거 질문 있어요. [1]
오라초보
2005-09-07
1982
23984쿼리좀 알려주세요.. [1]
궁금이
2005-09-07
1231
23983Character set, DB link 어떤 문제인지? [8]
핸시기
2005-09-07
14390
23982dblink 질문 [2]
이인호
2005-09-07
2943
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다