2012-07-04 5 views
0

ORA-04079 가져 오는 중 :이 트리거에 대한 트리거 지정 오류가 잘못되어 이유를 파악할 수 있습니까? 테이블 - TESTCOMM_FINDCOMM - 2 개 번호, 가격 및 통신SQL 트리거 - 통화 금지 기능

create or replace trigger TESTCOMM_FINDCOMM 
AFTER 
insert or update on "TESTCOMM" 
for each row 
referencing new as new and old as old 
begin 
    :NEW.Commission:= :NEW.Price*get_Comm(:NEW.Price);  
end; 

기능 get_Comm

create or replace function get_Comm 
(i_price in NUMBER) 
return NUMBER 
as 
o_COMMISSION_percent PRICECOMMISSION.COMMISSION%type; 
begin 
    select COMMISSION 
into o_COMMISSION_percent 
    from (
     select COMMISSION, 
      rank() over (order by Price desc) rnk 
     from PRICECOMMISSION 
     where PRICE <= i_price 
) where rnk = 1;  

    return o_COMMISSION_percent; 

end;​ 
+0

오라클과 비슷합니다. SQL은 여러 개의 RDBMS에 의해 구현되는 언어입니다. 어느 언어를 사용하고 있습니까? – Ben

답변

3

트리거가 AFTER 삽입/업데이트 트리거 - 당신은 수정할 수 없습니다 : NEW 값을 삽입/업데이트 후.

AFTER 트리거에 대한 자세한 내용은 here을 참조하십시오. 당신이 뭘보고해야 BEFORE 트리거입니다.