我有一个脚本,其中包含一个用户输入变量,用于执行哪种类型的INSERT
:
DECLARE
givenExp ExpMast.expNum%NUMBER;
paymentType VARCHAR(10);
BEGIN
givenExp := &desiredExpNum;
SELECT * From ExpMast WHERE expNum = givenExp;
paymentType := &Type_of_Payment;
IF(paymentType = 'CARD') THEN
INSERT INTO ExpByCC(givenExp, &CType, &CCNum, &Amt);
ELSIF(paymentType = 'CASH') THEN
UPDATE TABLE ExpMast
SET CashAmt = &PaymentAmount
WHERE ExpNum = givenExp;
END IF;
END;
/
但是,当我执行脚本时,它会运行两个IF
语句。我已尝试输入'CASH'
和'CARD'
但无论如何都会运行。我甚至改为使用1和0而不是字符串,但同样的错误仍然存在。
编辑:删除ELSIF
无效,因为输入完整的随机垃圾仍会在第一个INSERT
之后将代码发送到IF
语句。该代码由于某种原因完全忽略了我的IF
。