Chinaunix首页 | 论坛 | 博客
  • 博客访问: 76957
  • 博文数量: 31
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 207
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-21 17:14
文章分类

全部博文(31)

文章存档

2014年(31)

我的朋友

分类: Mysql/postgreSQL

2014-11-24 15:18:30

关于替换变量中的区别,两者区别在于作用范围不一样,引用的替换变量只在当前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

原载于:
参考资料:



阅读(875) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~