现在有需要进行下面的检索处理:
从一个表中检索数据,但是这个表可能不存在该条件的数据
处理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中顺便引发异常,会不会对系统有影响,影响大不?
解决方案 »
- 帮忙看下这个语句哪里错了?
- oracle创建索引的问题
- 求助,关于游标使用时for语句的疑惑
- Enterprise Manager console 打开非本机的oracle数据库
- 请教:在SQLPLUS中如何查询空间数据,怎样才能识别CONTAINS、DISTANCE等空间分析
- oem能像sql server中的图形化界面一样使用么?
- 求更简单的SQL语句
- 数据库安全问题
- oracle7的数据导入oracle816不能导入吗?
- 这样的UpdateSql语句如何写
- 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,或自己确定值