Oracle数据库编程获取异常订单

本文通过一个具体的Oracle PL/SQL示例,展示了如何使用游标获取数据记录,并结合条件判断进行业务逻辑处理。示例中详细介绍了声明变量、使用游标循环遍历查询结果、IF条件判断及异常处理等关键步骤。

declare
–定义变量时要声明类型
activity_defid varchar2(256);
–如果想得到一个结果集,在oracle中要使用游标,语法如下
cursor procInstId is select * from besorder.om_order where /business_code=‘CreateSubscriber’ and/ access_channel_type!=‘601’ and status=‘inProgress’ and create_time>sysdate-7 order by create_time desc;
begin
/*循环的结构:
for i in list loop

end loop;
*/
for i in procInstId loop
declare
j varchar2(250):=i.proc_inst_id;
begin
–将查询到的结果赋值给activity_defid
select activitydefid into activity_defid from(select * from besbpm.t_bpm_activitytrace t where t.processinstanceid=i.proc_inst_id order by t.execsequencenum desc) where rownum=1;
–IF判断的结构
if activity_defid like ‘%WaitCreateLogisticsOrderACK_callback_wait%’ then
dbms_output.put_line(‘1:orderId:’||i.order_id||’, businessCode:’||i.business_code||’, createTime:’||i.create_time||’!’);
elsif activity_defid like ‘%VerifyAndCreateSerialNumberAssignment_callback_wait%’ then
dbms_output.put_line(‘2:orderId:’||i.order_id||’, businessCode:’||i.business_code||’, createTime:’||i.create_time||’!’);
elsif activity_defid like ‘%WaitDeliveryACK1_callback_wait%’ then
dbms_output.put_line(‘3:orderId:’||i.order_id||’, businessCode:’||i.business_code||’, createTime:’||i.create_time||’!’);
elsif activity_defid like ‘%WaitDeliveryACKTemp1_callback_wait%’ then
dbms_output.put_line(‘3:orderId:’||i.order_id||’, businessCode:’||i.business_code||’, createTime:’||i.create_time||’!’);
elsif activity_defid like ‘%FuncWaitingAsignSerialNumberOpuTemp1_callback_wait%’ then
dbms_output.put_line(‘2:orderId:’||i.order_id||’, businessCode:’||i.business_code||’, createTime:’||i.create_time||’!’);
elsif activity_defid like ‘%FuncWaitLogisticsMessageStatusSetTemp2_callback_wait%’ then
dbms_output.put_line(‘1:orderId:’||i.order_id||’, businessCode:’||i.business_code||’, createTime:’||i.create_time||’!’);
end if;
–如果程序发生异常,一般在end之前添加异常处理
exception
when NO_DATA_FOUND/异常编码对应的名称/ then
DBMS_OUTPUT.PUT_LINE(‘程序运行错误!,异常订单ID:’||i.order_id||’.’);
continue;
end;
end loop;
end;

学好Oracle的六条总结 1、如果有一定的数据库基础,知道SQL是怎么回事,即使写不出来简单的SQL, 但可以看懂它们,你就可以跳到2。否则请先学习一下数据库基础和SQL语言, 不需要很深,更不需要去记忆那些复杂的SQL命令,这些可以留在以后边应用 边学习、记忆。2 、要想学好ORACLE,首先要学习ORACLE的体系结构,现在你不需要深入 理解它们,但要分清几个关键的概念: instance (实例)、数据文件、日志文件、参数文件、数据文件与表空间的关系 3、2是有关ORACLE的一些基本概念,下面要学习的是一些简单的的实际操作 ,就是如何去管理ORACLE数据库,当然不是管理全部的ORACLE。在此过程 中你将对SQL和ORACLE体系结构有个更深入的了解。 4、到了这一步你基本上算是初步掌握了ORACLE,下面将要根据你的方向来具 体学习其它的ORACLE知识了。如果你是开发人员,则需要更多地去学习 PL/SQL以及DEVELOPER,而这将是一门新的课程。如果你是一名DBA, 请继续。 5、可以根据自己的实际情况,进行有选择的学习,也就是说下面的内 没有特别顺序要求。可以选择深入学习ORACLE的管理、备份与恢复、性能 调整、网络等。当然在学习这些知识的过程中,如果有实际的工作更好,这样 可以在实际中成长,学会TROUBLE SHOOTING 目录 1.1 数据库基本知识 1.2 关系数据库 1.3 数据库设计基础 1.4 SQL基本命令 1.5 Oracle简介 1.6 启动和关闭Oracle 1.7 Oracle 命令复习
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值