1
これは、入力された選択肢に基づいて2つの異なる質問を印刷するために使用される単純なSQL文です。 elseまたはif条件が真ではないにもかかわらず、両方のステートメントが実行されていることに気付きました。出力された出力は正しいですが、ステートメントが真でない場合、代入変数を入力する必要はありません。 &Please_Enter_Choice
よう条件が決して真ではない場合でもELSE条件が実行されます
SET SERVEROUTPUT ON;
DECLARE
choice number(2) := '&Please_Enter_Choice';
question varchar2(50);
BEGIN
if choice = 1 then
question := '&Whats_your_name?';
else
if choice = 2 then
question := '&How_old_are_you?';
end if;
end if;
DBMS_OUTPUT.PUT_LINE(question);
END;
sqlplusはコードブロックが実行される前にすべての置換変数を入力するようにしています – thatjeffsmith
私はここでも辛抱強くしようとはしていませんが、IF文が実行されると、不注意にあなたのIFステートメントに 'TRUE'の結果を返すステップを見つけ出す必要があります。 – SandPiper