2014-04-16 4 views
1

나는 순서는 이와 같은 만들었습니다오라클 트리거가 잘못 되었나요?

CREATE Sequence index START WITH 1000; 

내 트리거 코드는 다음과 같습니다

CREATE OR REPLACE TRIGGER user BEFORE INSERT ON CUSTOMERS 
FOR EACH ROW 
BEGIN 
SELECT index.nextval INTO :new.custid FROM DUAL; 
END User; 
나는 메시지 "트리거 컴파일 오류로 만든"가 계속

하지만 내 코드의 나머지 공장. 내가 간과하고있는 것이 있다면? 오류는 "기호"INSERT "가 발생했습니다.

답변

3

USER은 오라클에서 예약어이기 때문에 오라클이 의심 스 럽다고 의심됩니다. 그래서 INDEX입니다.

그래서, 예약어가 아닌 식별자를 사용하여 테스트를 시도하고 CUSTOMERS이라는 동일한/현재 스키마에 테이블이 있는지 확인하고 CUSTID 열이 포함되어 있는지 확인하는 것이 좋습니다.

(그것은 "트리거가 만든 ..."또한 TRIGGER 권한을 생성하지 않은 경우, 오라클은보고되지 않을 것 비록 그것이 권한을 가진 문제의 원격 가능합니다.

우리가 그것을 찾을 수없는 경우 예약어를 객체 식별자로 사용해야 할 때 식별자를 큰 따옴표로 묶을 수는 있지만 식별자로 대소 문자를 구분할 수도 있습니다.