日期:2014-05-17  浏览次数:20939 次

为什么要用select count(*)判断员工编号是否存在
 我现在在看plsql入门到精通这本书,现在在讲raise——error。上面有一个判断员工编号是否存在的程序段
CREATE PROCEDURE registeremployee(....p_empno.....)


......
SELECT COUNT(*)
   INTO  v_empcount
   FROM emp
   WHERE  empno = p_empno;
IF v_empcount > 0
THEN
    raise_application_error(-20001, ‘员工编号为’|| p_empno ||'的员工已存在');
END IF


这么用select写有什么优势么,
还能用别的写法吗?

C++什么的可以用IF( A == B){....}。oracle开发是不是不能这么写?

------解决方案--------------------
目的是用变量v_empcount保存员工号是p_empno的个数,先让变量有值了,才可以去进行下一步的比较。你也可以用count(*),fetch就是一个简单地赋值操作,没有什么特别之处。
------解决方案--------------------
没看出楼主问题 问的要领、

按楼主的理解,应该怎么写?
------解决方案--------------------
数据库开发是本着使用数据库引擎来实现数据的收集的
------解决方案--------------------
SELECT 是赋值操作
ORACLE的过程语言也有控制结构
其他高级语言的{} 有点像ORACLE过程语言中的BEGIN ... END
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

没看出楼主问题 问的要领、

按楼主的理解,应该怎么写?


比如您要判断一个员工编号是否存在,最先想到用什么方法呢


我总觉得这个挺绕的,是不是应该有更简便的方法?


在oracle中,就是这么弄。。应该没有更简单了。