ora-01403:未找到任何数据
来源:互联网 发布:天堂js手机版下载 编辑:程序博客网 时间:2024/05/22 12:19
需求:
打算从fa_product_net_value表中拿出一只基金对应的所有估值日期,再应用此日期计算相应的指标。
declare
v_date_1 date ;
v_product nvarchar2(20) := '00010000388015';
v_date date :=date'2015-06-19';
begin
DBMS_OUTPUT.ENABLE (buffer_size=>null);
while v_date<=date'2015-12-31' loop
select t.d_esti_date into v_date_1 from dc_edw.fa_product_net_value t
where t.sk_product = v_product
and t.d_esti_date = v_date ;
dbms_output.put_line(v_date_1);
v_date := v_date+1 ;
end loop ;
end;
运行时 报错
网上找解决方案: 提示说是因为fa_product_net_value表中没有查出数据,(当表中存在记录但字段值为空值,与表中不存在记录为空是两个不同的概念),查找表发现
2015年7月25日没有数据
select * from dc_edw.fa_product_net_value t
where t.sk_product = '00010000388015' ;
解决办法:
捕获异常,用exception when no_data_found then 处理
declare
v_date_1 date ;
v_product nvarchar2(20) := '00010000388015';
v_date date :=date'2015-06-19';
begin
DBMS_OUTPUT.ENABLE (buffer_size=>null);
while v_date<=date'2015-12-31' loop
select t.d_esti_date into v_date_1 from dc_edw.fa_product_net_value t
where t.sk_product = v_product
and t.d_esti_date = v_date ;
dbms_output.put_line(v_date_1);
v_date := v_date+1 ;
end loop ;
exception when no_data_found then
v_date_1 := date'9999-01-01';
end;
能正常运行,但是发现,异常抛出后,无法继续运行while程序。
结果只显示到2015-07-24日。
分析原因: 当程序跑到2015-07-25的时候,没有数据,异常抛出给定的默认值‘9999-01-01’,程序结束。
尝试使用聚合函数。
declare
v_date_1 date ;
v_product nvarchar2(20) := '00010000388015';
v_date date :=date'2015-06-19';
begin
--DBMS_OUTPUT.ENABLE (buffer_size=>null);
while v_date<=date'2015-12-31' loop
select max(t.d_esti_date) into v_date_1 from dc_edw.fa_product_net_value t
where t.sk_product = v_product
and t.d_esti_date = v_date ;
dbms_output.put_line(v_date_1);
v_date := v_date+1 ;
end loop ;
end;
完美解决问题。
分析原因:执行带有函数的存储过程时,则并不会报no data found异常.
- ora-01403:未找到任何数据
- 采购申请 POCIRM-001:ORA-01403: 未找到任何数据
- ORA-01403未找到数据
- ORA-01403: 未找到任何数 ORA-06512
- 关于监控日志信息异常:ORA-01403: 未找到任何数据
- Oracle Form 问题集锦 - 点击某Form显示未找到任何数据(ORA-01403)
- 笔记:ORA-01403: 未找到数据
- EBS开发中,FORM上传编译运行,出现ORA-01403:未找到任何数据的错误提示!
- ORACLE 集合使用报未找到任何数据问题
- 在用toad执行oracle时发生的错误ORA-01403: 未找到数据
- 安装Win7提示“未找到任何驱动器”
- 安装Win7提示“未找到任何驱动器”
- 让姐郁闷了2个小时的ORACLE:ORA-01403: no data found 数据未找到 解决
- ORA-02298: 未找到父项关键字
- ORA-02298 未找到父项关键字
- ADF-ORA-01882:未找到时区
- 未找到数据 怎么解决
- 用Vmware安装linux提示未找到任何驱动器
- IOS开发中新特性的实现
- K--近邻算法示例
- Codeforces Round #277 (Div. 2)(A)模拟,打表
- 贝塞尔曲线精讲
- C++第1次实验
- ora-01403:未找到任何数据
- Injection for Xcode 不用build 查看效果.类似于HTML 的F5
- Node.js最新技术栈之Promise篇
- VS2015 OPENGL配置(X86平台)
- Nginx安装到使用__me
- Oracle与MySQL的几点区别
- 第五届蓝桥杯 软件类省赛真题 第七题:奇怪的分式
- PJSIP---可以视频通话的库
- Jenkins -- 配置JENKINS_HOME