반응형
열 업데이트 시 Oracle SQL 트리거
특정 플래그가 'Y'로 설정된 경우를 기준으로 게시된 날짜를 자동으로 추가하는 테이블에 대한 트리거를 만들려고 합니다.
트리거를 생성한 경험이 많지 않지만 지금까지 이것이 제가 가진 것입니다.
create or replace
TRIGGER ADD_CREATE_DT
after UPDATE of approved ON articles
for each row
BEGIN
:new.create_dt := sysdate where approved = 'Y';
END;
열을 업데이트할 때 이 오류가 발생함
'USER'를 트리거합니다.ADD_CREATE_DT'이(가) 잘못되었으며 재검증에 실패했습니다.
아이디어 있어요?
감사해요.
WHEN 절을 사용합니다.
create or replace
TRIGGER ADD_CREATE_DT
after UPDATE of approved ON articles
for each row
when (new.approved = 'Y')
BEGIN
:new.create_dt := sysdate;
END;
또는 다음과 같은 경우 사용:
create or replace
TRIGGER ADD_CREATE_DT
after UPDATE of approved ON articles
for each row
BEGIN
if :new.approved = 'Y' then
:new.create_dt := sysdate;
end if;
END;
이 경우 WHEN이 더 적절하고 효율적입니다.
create or replace
TRIGGER ADD_CREATE_DT
after UPDATE of approved ON articles
for each row
BEGIN
IF :NEW.approved = 'Y' THEN
:new.create_dt := sysdate;
END IF;
END;
어떤 버전의 Oracle을 사용하는지 모르겠습니다.Oracle 10g에서 다음 오류가 발생했습니다.
ORA-04084: cannot change NEW values for this trigger type
04084. 00000 - "cannot change NEW values for this trigger type"
*Cause: New trigger variables can only be changed in before row
insert or update triggers.
*Action: Change the trigger type or remove the variable reference.
AFTER 트리거의 필드는 변경할 수 없습니다.
언급URL : https://stackoverflow.com/questions/7982052/oracle-sql-trigger-on-update-of-column
반응형
'programing' 카테고리의 다른 글
UITableView에서 횡단 머리글의 기본 높이 (0) | 2023.07.20 |
---|---|
c#에서 매개 변수화된 쿼리를 실행하는 동안 ORA-01745 오류가 발생했습니다. (0) | 2023.07.20 |
Spring Boot 2의 경우 403 대신 401 (0) | 2023.07.20 |
nodejs로 MongoDB 쿼리 결과를 스트리밍하는 방법은 무엇입니까? (0) | 2023.07.20 |
ORA-02303: 형식을 삭제하거나 형식 또는 테이블 종속자로 대체할 수 없습니다. (0) | 2023.07.20 |