【发布时间】:2017-11-12 09:29:32
【问题描述】:
这是一个简单的 sql 语句,用于根据输入的选项打印 2 个不同的问题。我注意到即使 else 或 if 条件不成立,这两个语句也会运行。打印的输出是正确的,但如果语句不正确,我不需要替换变量来提示用户输入。
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 在代码块运行之前提示所有替换变量
-
这里我并不想太刻薄,但是如果执行了一个 IF 语句,那么你已经做了一些事情让计算机认为它是真的。您需要弄清楚哪个步骤无意中将
TRUE结果返回到您的 IF 语句。
标签: oracle if-statement plsql conditional-statements sqlplus