oracle 存储过程学习实例
来源:互联网 发布:asp php net 环境集成 编辑:程序博客网 时间:2024/05/22 10:52
//版权所有,转载请注明出处-----
CREATE OR REPLACE PROCEDURE p_num_exception(iorder_id in varchar2,isuborder_id in varchar2) IS
v_v1 number;
v_c1 varchar(30);
v_c2 varchar(30);
v_out varchar(500);
v_cur_sql varchar2(2000);
type curr is ref cursor;
cur curr;
V_REC uop_crm2.tf_r_mphonecode_use%rowtype;
BEGIN
BEGIN
DECLARE
begin
-- CURSOR CUR IS
v_cur_sql := 'select *
from uop_crm2.tf_r_mphonecode_use b
where b.serial_number in
(select a.attr_value
from uop_crm2.tf_b_weg_trade_item a
where a.suborder in
(select c.suborder
from uop_crm2.tf_b_weg_trade c
where c.order_id = iorder_id ';
-- )
--);
--and c.suborder = isuborder_id
if isuborder_id <> null and isuborder_id <> '' then
v_cur_sql := v_cur_sql || ' and c.suborder = isuborder_id ))';
else
v_cur_sql := v_cur_sql || '))';
end if;
OPEN CUR FOR v_cur_sql;
-- FOR V_REC IN CUR LOOP,不用打开和关闭着,直接使用
loop
FETCH CUR INTO V_REC;
EXIT WHEN CUR%NOTFOUND;
if v_rec.code_state_code = 4 then
v_out :=v_rec.serial_number||'已开卡';
else
--非在用,检查空闲表
select count(1) into v_v1 from uop_crm2.tf_r_mphonecode_idle t where t.serial_number = v_rec.serial_number;
if v_v1 > 0 then
v_out := v_rec.serial_number||'在空闲表中';
else
--检查TF_B_TRADE表是否存在0 Y订单,
select t.subscribe_state,t.next_deal_tag into v_c1,v_c2 from uop_crm2.TF_B_TRADE t where t.serial_number = v_rec.serial_number;
if v_c1 = '0' and v_c2 = 'Y' then
v_out := '子订单号:'||isuborder_id||',号码:'||v_rec.serial_number;
else
--TF_B_TRADE不存在0Y订单,检查TF_BH_TRADE 表是否存在500订单
select tt.trade_type_code,tt.cancel_tag into v_v1,v_c1 from(select t.trade_type_code,t.cancel_tag from uop_crm2.TF_Bh_TRADE t where t.serial_number = v_rec.serial_number order by t.accept_date desc)tt where rownum = 1;
if v_v1 = 500 then
if v_c1 = '0' then
v_out := v_rec.serial_number||'状态为竣工';
--else
--If 一条1,一条2 ,返回某某号码开户返销,需要预开
end if;
else
v_out := v_rec.serial_number||'没有预开';
end if;
end if;
end if;
end if;
END LOOP;
CLOSE cur;
END;
END;
dbms_output.put_line(v_out);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('sqlcode : ' || sqlcode);
DBMS_OUTPUT.put_line('sqlerrm : ' || sqlerrm);
rollback;
END p_num_exception;
0 0
- oracle 存储过程学习实例
- Oracle 存储过程实例
- Oracle存储过程实例
- oracle 存储过程实例
- oracle存储过程实例
- Oracle存储过程实例
- Oracle存储过程实例
- Oracle存储过程实例
- oracle存储过程实例
- Oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- oracle存储过程实例
- Oracle存储过程实例
- oracle存储过程实例
- oracle-存储过程实例
- Selenium - CSS Selector
- 基于ZooKeeper的分布式Session实现
- Java泛型
- C#对JSON的序列化与发序列化
- mysql中字段类型是datetime时比较大小问题
- oracle 存储过程学习实例
- jquery jqPlot API 中文使用教程
- 菜鸟的安卓实习之路----onKey监听键盘事件
- HiHo 1038 01背包
- 正则验证非法字符
- canvas 画图----arc函数
- 使程序同时支持iphone和ipad
- 内存中的程序剖析(转自melody_lu123)
- Android程序的执行流程