Chinaunix首页 | 论坛 | 博客
  • 博客访问: 590781
  • 博文数量: 226
  • 博客积分: 10080
  • 博客等级: 上将
  • 技术积分: 1725
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-26 11:15
文章分类

全部博文(226)

文章存档

2011年(5)

2010年(64)

2009年(99)

2008年(37)

2007年(21)

我的朋友

分类: Oracle

2010-01-17 15:06:35

  在SQL语句中,数据库字段名称的优先级要高于本地变量和形式参数。例如,下面的DELETE语句会从emp表删除所有的雇员信息,而不只是名字为"KING"的雇员:

DECLARE
  ename   
VARCHAR2 (10) := 'KING';
BEGIN
  
DELETE FROM emp
        
WHERE ename = ename;
  ...

在这种情况下,为了避免产生歧义,可以像下面这样在本地变量和形式参数的前面加上类似于"my_"这样的前缀:

DECLARE
  my_ename 
VARCHAR2(10);

或是使用块标签来进行引用限定:

<

>
DECLARE
  ename   
VARCHAR2 (10) := 'KING';
BEGIN
  
DELETE FROM emp
        
WHERE ename = main.ename;
  ...

下面的例子演示了如何使用子程序名称来限定对本地变量和形式参数的引用:

FUNCTION bonus (deptno IN NUMBER, ...) RETURN REAL 

IS
  job 
CHAR(10);
BEGIN
  
SELECT ... WHERE deptno = bonus.deptno AND job = bonus.job;
  ...

阅读(477) | 评论(0) | 转发(0) |
0

上一篇:怎样才是有效沟通

下一篇:pL/SQL注意点二

给主人留下些什么吧!~~