PL / SQL Запуск всех случаев If - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть скрипт, который, помимо прочего, принимает пользовательскую переменную ввода для типа 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...