为什么要用select count(*)判断员工编号是否存在

tankey0909 2013-04-27 04:20:25
我现在在看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开发是不是不能这么写?
...全文
295 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
amywm1 2013-04-28
  • 打赏
  • 举报
回复
有值存在。没有值不存在。。。最容易的理解了啊。
tankey0909 2013-04-28
  • 打赏
  • 举报
回复
引用 6 楼 tankey0909 的回复:
[quote=引用 2 楼 u010412956 的回复:] 没看出楼主问题 问的要领、 按楼主的理解,应该怎么写?
比如您要判断一个员工编号是否存在,最先想到用什么方法呢[/quote] 我总觉得这个挺绕的,是不是应该有更简便的方法?
tankey0909 2013-04-28
  • 打赏
  • 举报
回复
引用 2 楼 u010412956 的回复:
没看出楼主问题 问的要领、 按楼主的理解,应该怎么写?
比如您要判断一个员工编号是否存在,最先想到用什么方法呢
tankey0909 2013-04-28
  • 打赏
  • 举报
回复
引用 3 楼 ht307 的回复:
数据库开发是本着使用数据库引擎来实现数据的收集的
您说的一语中的的赶脚。但是有些抽象。除了这个,您还能举几个例子吗,
zgycsmb 2013-04-28
  • 打赏
  • 举报
回复
看明白楼主的意思,
u010412956 2013-04-28
  • 打赏
  • 举报
回复
引用 7 楼 tankey0909 的回复:
[quote=引用 6 楼 tankey0909 的回复:] [quote=引用 2 楼 u010412956 的回复:] 没看出楼主问题 问的要领、 按楼主的理解,应该怎么写?
比如您要判断一个员工编号是否存在,最先想到用什么方法呢[/quote] 我总觉得这个挺绕的,是不是应该有更简便的方法?[/quote] 在oracle中,就是这么弄。。应该没有更简单了。
sych888 2013-04-27
  • 打赏
  • 举报
回复
SELECT 是赋值操作 ORACLE的过程语言也有控制结构 其他高级语言的{} 有点像ORACLE过程语言中的BEGIN ... END
槑党 2013-04-27
  • 打赏
  • 举报
回复
数据库开发是本着使用数据库引擎来实现数据的收集的
u010412956 2013-04-27
  • 打赏
  • 举报
回复
没看出楼主问题 问的要领、 按楼主的理解,应该怎么写?
善若止水 2013-04-27
  • 打赏
  • 举报
回复
目的是用变量v_empcount保存员工号是p_empno的个数,先让变量有值了,才可以去进行下一步的比较。你也可以用count(*),fetch就是一个简单地赋值操作,没有什么特别之处。

17,089

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧