现在有需要进行下面的检索处理:
从一个表中检索数据,但是这个表可能不存在该条件的数据
处理1:
Select Count(*) Into v_count
From Table1
Where A=a
and rownum = 1;
IF v_count > 1 Then
Select B Into v_b
From Table1
Where A=a;
End IF;
处理2
Begin
Select B Into v_b
From Table1
Where A=a;
Exception
When others Then
null;
End;问题1
上述这两种处理,那种更好?
问题2
在Oracle中顺便引发异常,会不会对系统有影响,影响大不?
从一个表中检索数据,但是这个表可能不存在该条件的数据
处理1:
Select Count(*) Into v_count
From Table1
Where A=a
and rownum = 1;
IF v_count > 1 Then
Select B Into v_b
From Table1
Where A=a;
End IF;
处理2
Begin
Select B Into v_b
From Table1
Where A=a;
Exception
When others Then
null;
End;问题1
上述这两种处理,那种更好?
问题2
在Oracle中顺便引发异常,会不会对系统有影响,影响大不?
解决方案 »
- DBCA创建数据库时init.ora拒绝访问
- 请教:Oracle 分组统计算法,分组 重复汇总
- 复杂的数据去重问题
- 表之间的copy问题,十万火急
- 有没有表格形式的 oracle 9i 和 10g 的比较
- ORA-00600: 内部错误代码,参数: [1236]
- 如何获取(某个时间+24小时)?(某个时间+168小时)?(某个时间+720小时)?
- 请高手看看我这procedure错在何处
- 在应用程序中调用存储过程,怎样知道该存储过程是否执行成功?
- 菜鸟问题
- oracle81序列能导出来吗?。。急。。。
- DbExec:Io 异常: The Network Adapter could not establish the connection
From Table1
Where A=a
and rownum = 1;
IF v_count > 1 Then
Select B Into v_b
From Table1
Where A=a;
你的v_count只能为0,或者1,不可能大于1的呀。
Select nvl(max(B),-1) Into v_b
From Table1
Where A=a;只是一次查询,又不会抛异常,还能解决如果有两条数据的问题
空的时间返回-1,或自己确定值