ユーザーが1か月に5つのレコードを入力した後は、レコードを入力できないという制約を設定する必要があります。そのためのトリガーまたはプロシージャを作成することをお勧めしますか?それ以外の場合、制約を設定できる他の方法はありますか?
トリガーを作成する代わりに、制約のプロシージャを作成することを選択しましたが、プロシージャが機能しているかどうかを確認するにはどうすればよいですか?
手順は次のとおりです。
CREATE OR REPLACE PROCEDURE InsertReadingCheck
(
newReadNo In Int,
newReadValue In Int,
newReaderID In Int,
newMeterID In Int
)
AS
varRowCount Int;
BEGIN
Select Count(*) INTO varRowCount
From Reading
WHERE ReaderID = newReaderID
AND Trunc(ReadDate,'mm') = Trunc(Sysdate,'mm');
IF (varRowCount >= 5) THEN
BEGIN
DBMS_OUTPUT.PUT_LINE('*************************************************');
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE(' You attempting to enter more than 5 Records ');
DBMS_OUTPUT.PUT_LINE('');
DBMS_OUTPUT.PUT_LINE('*************************************************');
ROLLBACK;
RETURN;
END;
ELSIF (varRowCount < 5) THEN
BEGIN
INSERT INTO Reading
VALUES(seqReadNo.NextVal, sysdate, newReadValue,
newReaderID, newMeterID);
COMMIT;
END;
END IF;
END;
誰でも私が目を通すのを手伝ってくれる