举手之劳可得50分,求一个Oracle的存储过程的例子,抛出异常,在.net中捕获异常,并alter
存储过程结构如下:
Create or Replace Produce
(
i_OrderID in number,
i_ReturnValue out number
)
is
v_RealValue number;
v_TotalValue number;
v_AdvendorID number;
begin
/*这个地方我想判断表adms_AdOrderAccount中AdOrderID=i_OrderID的记录是否存在,如果不存在,抛出异常,提示输入不存在
select AdVendorID from adms_AdOrderAccount where AdOrderID=i_OrderID;
--if sqlcode <> 100 then
--return;
--end if;
*/
select FINALRATEVALUE , RealRateValue into v_RealValue,v_TotalValue
from adms_ADOrderInfo where ADORDERID=i_OrderID;
/* --then raise_application_error(-20001,'');
--then raise data_not_found;*/
/* 此处我想实现从表table1中取value放到变量v_Value中,因为Value是Oracle的保留字,所以此处这样直接使用存储过程一直为Invalid
select value into v_Value from table where ADORDERID=i_OrderID;
*/
update adms_AdOrderAccount set TotalValue=v_TotalValue,RealValue=v_RealValue,Status=1
where AdOrderID=i_OrderID;
/*此处如果update失败抛出异常.net捕获并显示
update adms_AdOrderInfo set Status=4 where AdOrderID=i_OrderID;
update adms_PushPolicy set Status=1 where AdOrderID=i_OrderID;
*/
/* --exception
-- when data_not_found then dbms_output.put_line('pnX(');
*/
end D_Proc_OrderStop;
.net中调用D_Proc_OrderStop,传递参数,并捕获异常
可以指给出你的例子,不过例子中要有我上面的那几个,最好你的例子中使用了游标或者子查询,我刚起步Oracle,谢谢!