PL / SQL运行所有If例

时间:2018-04-29 23:10:11

标签: oracle plsql

我有一个脚本,其中包含一个用户输入变量,用于执行哪种类型的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

0 个答案:

没有答案