1

我知道标题不太清楚。这是图片

我正在使用 &a 它正在将其视为 $a。, 在输出 &a 和 &a 中。给出相同的输出。以及为什么 &a 之后的单个 .(DOT) 没有给出错误,但是如果我们在 &a 之后放置任何字符、运算符或通配符会给出错误。

这是代码。

BEGIN
  FOr i in &&a...3 LOOP
     DBMS_OUTPUT.PUT_LINE(i||' '||&a.||' '||&a);
END LOOP;
END;

输出来了

1 1 1
2 1 1
3 1 1
4

1 回答 1

1

点是&定义的分隔符。在大多数情况下,您不会注意到差异,但如果您出于某种原因在变量名后没有空格或类似的内容,则可能会导致混淆。例如,如果您在字符串中将某些内容与变量连接'&asomething',它会要求一个名为“asomething”的变量。如果你这样做,'&a.something'那么它会要求一个名为“a”的变量,并在提供的任何值的末尾加上“某物”。之后的任何其他字符&a都将被视为变量名称的一部分,或者如果它作为名称的一部分无效,则会导致错误。

于 2010-04-12T19:56:49.660 回答