Oracle 12c SQL 데이터베이스의 항목 수량 (qoh)이 5 미만인 경우 SQL 트리거를 만들려고합니다. 해당 항목의 설명을 선택하고 싶습니다. 다른 테이블은 다음과 같은 쿼리와 함께 온,하지만 난 그것을 실행하려고 할 때 오류가 점점 오전 : 나는 new.item_id
를 호출 할 수 있어야합니다 알아낼 수 있었던 것과트리거에서 업데이트 된 항목 사용
/*Creates a trigger to notify someone when an item is out of stock*/
CREATE OR REPLACE TRIGGER ItemOutOfStock
AFTER UPDATE OF INV_QOH ON inventory
FOR EACH ROW
WHEN (new.INV_QOH < 5)
BEGIN
SELECT I.ITEM_DESC
FROM ITEMS I
WHERE I.ITEM_ID = new.ITEM_ID;
END;
/
과 작동하지만, 그렇지 않습니다. 인벤토리 테이블을 업데이트하고 dbms_output.put_line
명령을 사용하여 항목의 수량을 5 미만으로 설정하면 텍스트가 출력에 저장되므로 문제가 select 문에있는 것입니다.
결과로 무엇을 하시겠습니까? 오라클 트리거는 단지 '선택'을 가질 수 없으며, 데이터는 어딘가로 가야합니다. –
오. 흠. 그래서 프로 시저를 전자 메일로 보내야하므로 항목 설명을 가져 와서 저장된 send_email 프로 시저에 전달해야합니다. 그래서 저는 select 문을 사용하여 볼을 롤업 한 다음 항목 설명을 varchar2 변수에 저장하려고했습니다. – ThomYorkkke
"오류가 발생했다"고 말하는 것보다는 실제 오류를 포함시키는 것이 항상 도움이됩니다. –