
有一条记录但是记录是空记录
和没有一条记录
的问题了。
首先弄清楚no data found异常是在找不到一条记录的时候报的异常,但是在找到一条空记录的时候是不会报这个异常的。
用集合函数之所以不会报错原因是:
用集合函数的时候,当参数没有赋值时,函数会默认赋一个空值来进行计算,返回的结果也是一个空值(不是没有值)。
而to_char、substr这些函数就不会当参数没有赋值时默认赋空值,也就没有结果返回。
所以区别就是一个有记录返回,但是个空记录,而一个是没有记录返回。
其实你要看清楚空记录和没有记录的区别可以执行如下的程序看返回结果的差别就懂了。
OPEN OUTCURSOR FOR
select MAX(t.Time) from dept t where t.id>'10'
比较
OPEN OUTCURSOR FOR
select t.Time from dept t where t.id>'10'
再比较
OPEN OUTCURSOR FOR
select to_char(t.Time,'yyyy-mm-dd') from dept t where t.id>'10'
例如有个 成绩表 ( 学生, 课程, 成绩)
有如下数据
张三 英语 100
李四 英语 80
王五 英语 60
赵六 英语 0
你是不是想
SELECT * FROM 成绩表 WHERE 学生 = '赵六' 的时候,
得到的结果是:
赵六 英语 NULL
这样?
如果是的话
SELECT
学生, 课程, DECODE( 成绩, 0, NULL, 成绩) AS 成绩
FROM
成绩表
WHERE
学生 = '赵六'
注:
DECODE( 成绩, 0, NULL, 成绩)
相当于
CASE WHEN 成绩 = 0 THEN NULL
ELSE 成绩 END
也就是 如果成绩为0,那么返回 NULL, 否则就返回成绩。
甲骨文公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989年正式进入中国市场。2013年,甲骨文已超越 IBM ,成为继 Microsoft 后全球第二大软件公司。
2017年6月7日发布的2017年美国《财富》500强,甲骨文公司排名第81位。2017年6月,《2017年BrandZ最具价值全球品牌100强》公布,甲骨文公司排名第46位。
cs.SelectEName(txtEcha.Text)这个应该有一个返回值是datatable,如果是它的话,datatable.Rows.Count==0就说明没有找到数据。 dgvEmployee.Rows.Count你看有没有这个属性。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)