このトリガーを書き込もうとしていますが、正しく機能していません。私はテーブルGIVING(ドナー、レシーバー、giftname)とテーブルPERSONS(pname、age、haircolor)を持っています。トリガーとして、ドナーとレシーバーが同じ髪の色をしているときはいつでもメッセージを吐き出したいです。些細なことですが、トリガーを学び始めたばかりで、これが機能しない理由に完全に固執しています。ありがとう。
create or replace TRIGGER SameHairColor
BEFORE INSERT OR UPDATE OF GIFTNAME ON GIVING
DECLARE
haircolordonor varchar(255);
haircolorreceiver varchar(255);
BEGIN
select persons.haircolor into haircolordonor
from persons, giving
where (donor = persons.pname);
select persons.haircolor into haircolorreceiver
from persons, giving
where (receiver = persons.pname);
if (haircolordonor = haircolorreceiver) then
dbms_output.put_line('Wow, they have the same haircolor! Who would have thought?');
end if;
end;
私が受け取るエラーメッセージは、実行中のエラーです。「正確なフェッチは要求された数を超える行を返します」、DECLAREの下の行を指しています...?