关于替换变量中的区别,两者区别在于作用范围不一样,引用的替换变量只在当前SQL有效,引用的替换变量则在当前会话有效。以下面人们经常引用的例子来说明
SQL> SELECT 2+&NUM FROM DUAL;
Enter value for num: 2
old 1: SELECT 2+&NUM FROM DUAL
new 1: SELECT 2+2 FROM DUAL
2+2
----------
4
SQL> SELECT 3+&NUM FROM DUAL;
Enter value for num: 3
old 1: SELECT 3+&NUM FROM DUAL
new 1: SELECT 3+3 FROM DUAL
3+3
----------
6
SQL> SELECT 2+&&NUM FROM DUAL;
Enter value for num: 2
old 1: SELECT 2+&&NUM FROM DUAL
new 1: SELECT 2+2 FROM DUAL
2+2
----------
4
SQL> SELECT 3+&&NUM FROM DUAL;
old 1: SELECT 3+&&NUM FROM DUAL
new 1: SELECT 3+2 FROM DUAL
3+2
----------
5
小知识1:在存储过程或包体里面,经常有在字符串中使用&的情况,执行脚本时,经常会将这些字符串视为替换变量,要求输入值,这样烦不甚烦,其实只需要设置一下SQL*PLUS的环境变量即可避免这种情况。通常通过SET DEFINE OFF
原载于:
参考资料:
阅读(924) | 评论(0) | 转发(0) |