2017-02-11 6 views
0

구문 오류입니까, 내 공백이 없거나 ':'코드에 있습니다. 다음은 내 코드는 직접적인 비교를하고 있기 때문에, END IFsqlplus 트리거 컴파일 오류

근처에 트리거 당신의 라인 (12)에 당신은 세미콜론 누락

SQL> Create or replace trigger trig_addr_mulund 
     2 After insert or update 
     3 On users_table 
     4 For each row 
     5 begin 
     6 If :new.address like 'Mulund' then 
     7 Insert into [email protected] values (:new.id,:new.role_id,:new.b 
    ranch_id,:new.name,:new.email,:new.phone,:new.address, 
     8 :new.email,:new.phone,:new.address); 
     9 Else 
    10 Insert into [email protected] values (:new.id,:new.role_id,:n 
    ew.branch_id,:new.name,:new.email,:new.phone,:new.address, 
    11 :new.email,:new.phone,:new.address); 
    12 End if 
    13 End; 
    14/

Warning: Trigger created with compilation errors. 
+0

경고를 본 후'show errors'를 사용하거나'user_errors' 뷰를 쿼리하여 실제 컴파일 오류를 확인하십시오. –

답변

1

을 만들 = 대신 LIKE을 사용할 수 있습니다. 또한 SQL 문에 명시 적으로 열 이름을 제공하는 것이 좋습니다.

CREATE OR REPLACE TRIGGER trig_addr_mulund AFTER 
    INSERT OR 
    UPDATE ON users_table FOR EACH row 
BEGIN 
    IF :new.address = 'Mulund' THEN -- changed "LIKE" to "=" 
    INSERT 
    INTO [email protected] VALUES 
    (
     :new.id, 
     :new.role_id, 
     :new.branch_id, 
     :new.name, 
     :new.email, 
     :new.phone, 
     :new.address, 
     :new.email, 
     :new.phone, 
     :new.address 
    ); 
ELSE 
    INSERT 
    INTO [email protected] VALUES 
    (
     :new.id, 
     :new.role_id, 
     :new.branch_id, 
     :new.name, 
     :new.email, 
     :new.phone, 
     :new.address, 
     :new.email, 
     :new.phone, 
     :new.address 
    ); 
END IF; -- added the missing semicolon 
END; 
/