ブックの最低価格を引き出し、新しい価格が最小値の5倍の場合にトリガーされるトリガーを作成したいとします。私は私のSELECTステートメントでエラーが発生します。私はトリガーが発射された同じテーブルから選択しているからだと思います。同じテーブルのSELECTを使用してトリガーする
CREATE OR REPLACE TRIGGER check
BEFORE INSERT OR UPDATE ON book_type
FOR EACH ROW
DECLARE
newPrice number;
lowestPrice number;
topPrice number;
BEGIN
newPrice := NEW.price;
lowestPrice := (SELECT MIN(price) FROM book_type);
topPrice := (5 * lowestPrice);
IF (topPrice < newPrice) THEN
dbms_output.put_line('Error. Price too high.');
END IF;
END;
/
エラーは何ですか? – LordBaconPants
これは宿題ですか?一般に、トリガーはこの種の問題を解決する最も適切な方法ではありません。トリガーが必要な宿題であれば、複合トリガーについて学んだことがありますか?単一の非複合トリガが必要な場合は、複数のトリガ(または複合トリガ)よりも効率的ではないが、はるかに複雑ではない文レベルのトリガが必要になります。 –
エラー:次のいずれかを予期しているときにシンボル "select"が検出されました:(+; – Nik