У меня есть скрипт, который, помимо прочего, принимает пользовательскую переменную ввода для типа 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 вместо строк, но та же ошибка сохраняется.
EDIT: удаление ELSIF
ничего не делает, так как ввод полного случайного мусора все еще отправляет код в оператор INSERT
после первого IF
. Код почему-то полностью игнорирует мой IF
.