0
CREATE TRIGGER x AFTER INSERT ON itemtype
FOR EACH ROW
DECLARE
minn itemtype.PRICE%type;
BEGIN
select MIN(itemtype.PRICE) into minn from itemtype;
IF (:new.PRICE > minn*4) then RAISERROR('Custom text');
END IF;
END;
/
내가 itemtype.PRICE
열 값과 itemtype
에 새 항목을 삽입하려고 할 때이 오류가 발생하는 트리거를 만들 수보다 4 배 현재 저가 항목에 노력하고있어를 선언해야합니다 탁자.'RAISERROR는'
트리거를 만들려고하면 이러한 컴파일 오류가 발생합니다.
LINE/COL ERROR
-------- --------------------------------------------------------------
5/31 PL/SQL: Statement ignored
5/31 PLS-00201: identifier 'RAISERROR' must be declared
또한 준수
CREATE TRIGGER x AFTER INSERT ON itemtype
FOR EACH ROW
DECLARE
minn itemtype.PRICE%type;
BEGIN
select MIN(itemtype.PRICE) into minn from itemtype;
if (:new.PRICE > minn*4) then raise_application_error(-20010,'Too Expensive');
END IF;
END;
/
을 시도,하지만 난 테이블에 새 항목을 삽입 할 때 나는 나의 트리거가 실패라고 논문의 오류를 얻을.
SQL> insert into itemtype(ITEMNUM,NAME,PICTURE,PRICE,BELONGSTO) VALUES ('A11','The who knows','',10.99,'P');
insert into itemtype(ITEMNUM,NAME,PICTURE,PRICE,BELONGSTO) VALUES ('A11','The who knows','',10.99,'P')
*
ERROR at line 1:
ORA-04091: table USERNAME.ITEMTYPE is mutating, trigger/function may not see it
ORA-06512: at "USERNAME.X", line 5
ORA-04088: error during execution of trigger 'USERNAME.X'
('사용자 정의 텍스트', 10, 1); 와 같은 오류가 발생합니다. – glassofwotah
이 정보가 도움이됩니까? https://stackoverflow.com/questions/6020450/oracle-pl-sql-raise-user-defined-exception-with-custom-sqlerrm –
여기 뭔가 잘못된 태그가 있다고 생각합니다. 오류가 PL/SQL을 참조하지만 이것은 MySQL 태그입니다. RAISE를 시도하십시오. https://docs.oracle.com/cd/B19306_01/appdev.102/b14261/raise_statement.htm –