【问题标题】:DOT(.) after Ampersand (host variable)& considering as a part of variable name?&符号(主变量)之后的DOT(。)&考虑作为变量名的一部分?
【发布时间】:2010-04-12 18:18:06
【问题描述】:
我知道标题不太清楚。这是图片
我正在使用 &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
【问题讨论】:
标签:
plsql
oracle9i
plsqldeveloper
【解决方案1】:
点是& 定义的分隔符。在大多数情况下,您不会注意到差异,但如果您由于某种原因在变量名后没有空格或类似的名称,则可能会导致混淆。例如,如果您在字符串'&asomething' 中将某些内容与您的变量连接起来,它会要求一个名为“asomething”的变量。如果您以'&a.something' 执行此操作,那么它将要求一个名为“a”的变量,并在提供的任何值的末尾添加“某物”。 &a 之后的任何其他字符都将被视为变量名称的一部分,或者如果它作为名称的一部分无效,则会导致错误。