0
當我運行我的腳本時,當它詢問「付款方式是現金(是/否)?」時,我輸入N?但它仍然執行IF下的聲明......爲什麼會發生這種情況?爲什麼我的PL在SQL腳本中被忽略?
ACCEPT ExpNum NUMBER PROMPT 'Enter an expense number: ';
SELECT *
FROM ExpByCC
WHERE ExpNum = &ExpNum;
SELECT IsCash,CashAmt
FROM EXPMAST
WHERE ExpNum = &ExpNum
AND IsCash = 'Y';
ACCEPT CashChoice PROMPT 'Will the payment method be cash (Y/N)? ';
DECLARE
ChoiceCash VARCHAR2(1);
NumRowInExpByCC NUMBER;
BEGIN
ChoiceCash := &CashChoice;
IF ChoiceCash = 'Y'
THEN
UPDATE EXPMAST
SET IsCash = ChoiceCash,
CashAmt = &CashAmount
WHERE ExpNum = &ExpNum;
COMMIT;
ELSE
&CType;
&CCnum;
&Amt;
END IF;
END;
/
你的輸出是什麼?代碼看起來不錯。你可以反轉條件,以避免= vs ==混淆,但它不應該改變一件事情。 – vav
SQL> @ addexpPay.sql 輸入費用數:1 老3:WHERE ExpNum =&ExpNum 新3:WHERE ExpNum = 1 沒有行選擇 老3:WHERE ExpNum =&ExpNum 新3:WHERE ExpNum = 1 I CASHAMT - ---------- Y 10.5 支付方式是現金(是/否)? N 輸入值爲cashamount: – Stc5097
可能難以閱讀,但我輸入N,它仍然運行第一個if – Stc5097