范例:
BEGIN
DBMS_OUTPUT.PUT_LINE ('Today is '||'&sv_day');
DBMS_OUTPUT.PUT_LINE ('Tomorrow will be '||'&sv_day');
END;
Enter value for sv_day: Monday
old 2: DBMS_OUTPUT.PUT_LINE ('Today is '||'&sv_day');
new 2: DBMS_OUTPUT.PUT_LINE ('Today is '||'Monday');
Enter value for sv_day: Tuesday
‑old 3: DBMS_OUTPUT.PUT_LINE ('Tomorrow will be '||'&sv_day');
‑new 3: DBMS_OUTPUT.PUT_LINE ('Tomorrow will be '||'Tuesday');
Today is Monday
Tomorrow will be Tuesday
PL/SQL procedure successfully completed.
如果不希望看到这个脚本所产生的输出,可以在运行这个脚本之前使用SET命令选项.
SET VERIFY OFF;
则这时候的输出为:
Enter value for sv_day: Monday
Enter value for sv_day: Tuesday
Today is Monday
Tomorrow will be Tuesday
PL/SQL procedure successfully completed.
考虑前面的替代变量出现了两次,当运行这个程序时,会2次要求用户提供相同的变量。
范例的改进版本:
亮点在红色部分:
BEGIN
DBMS_OUTPUT.PUT_LINE ('Today is '||'&&sv_day');
DBMS_OUTPUT.PUT_LINE ('Tomorrow will be '||'&sv_day');
END;
Enter value for sv_day: Monday
old 2: DBMS_OUTPUT.PUT_LINE ('Today is '||'&&sv_day');
new 2: DBMS_OUTPUT.PUT_LINE ('Today is '||'Monday');
‑old 3: DBMS_OUTPUT.PUT_LINE ('Tomorrow will be '||'&sv_day');
‑new 3: DBMS_OUTPUT.PUT_LINE ('Tomorrow will be '||'Monday');
Today is Monday
Tomorrow will be Monday
PL/SQL procedure successfully completed.
当替代变量被赋予字符串(文本)数据类型时,最好使用单括号括起来。无法始终保证用户会在单括号中提供文本信息。这样做会让程序更强壮。
一天,一个月,一年。总有一天会变得不一样。