1

私はSQLが初めてで、トリガーを使用してSQLクエリをデバッグするのを誰かが手伝ってくれるかどうか疑問に思っていました.

私がやろうとしているのは、従業員のボーナスが、従業員が責任を負う在庫の総量の 0.1% を超えることを許可しないことです。誰でも私を助けてもらえますか?

私のコードは次のとおりです。

create or replace trigger check_employee_bonus
before update of Bonus or insert on employee
for each row
Declare
Max_Bonus   products.Quantity%TYPE;     
begin
select st.Quantity * 0.1
INTO MaxBonus
from product p, Stock st
Where
p.warehousenum = st.W_no
AND
p.p_no = st.p_no;
if :new.Bonus > Max_Bonus then
RAISE_APPLICATION_ERROR(-20512, 'sales rep’s yearly bonus may not exceed 0.1%  . ');
end if;
end;
4

1 に答える 1

0

あなたの宣言に問題があると思いますが、

Declare
Max_Bonus   products.Quantity%TYPE; ********* it should be product.Quantity      
begin
select st.Quantity * 0.1

productsの代わりにテーブル名が記載されていますproduct

于 2012-12-22T02:10:31.977 に答える