oracle 点击 提交,oracle中事宜提交和execute

oracle中事务提交和execute

请教大家:1、oracle存储过程中事务是怎样定义的? tran tran_CHG_SHEET_STA;。。。commit tran tran_CHG_SHEET_STA;是这样么?

2、execute HOLD_SHEET_LOCK;这个啥用法,怎么是光秃秃的一个?

CREATE OR REPLACE PROCEDURE CHG_SHEET_STA(

p_SHEET_LVL varchar2,

p_SHEET_ID  varchar2,

p_OPT_ID    int)

AS

new_SHEET_STATUS varchar2(16);

S_ID int;

BEGIN

tran tran_CHG_SHEET_STA;

execute HOLD_SHEET_LOCK;

if p_SHEET_LVL is null or p_SHEET_ID is null or p_OPT_ID is null then

return ;

end if;

new_SHEET_STATUS := null;

execute immediate 'call GET_SHEET_STA_BY_OPT SHEET_LVL(:SHEET_LVL,:SHEET_ID,:OPT_ID,:OPT_ID,:p_new_SHEET_STATUS)'  using p_SHEET_LVL,p_SHEET_ID,p_OPT_ID,new_SHEET_STATUS;

if new_SHEET_STATUS is not null then

if p_SHEET_LVL = 'MAIN_SHEET' then

execute immediate 'call CHG_FS_STA(:p1_SHEET_STREAM_NO,:p1_new_SHEET_STATUS)' using p_SHEET_ID, new_SHEET_STATUS;

elsif p_SHEET_LVL = 'SUB_FAULT' then

S_ID := to_number( p_SHEET_ID) ;

execute immediate 'call CHG_SFS_STA(:p1_SUB_FAULT_SHEET _ID,:p1_new_SHEET_STATUS)' using S_ID,new_SHEET_STATUS;

elsif p_SHEET_LVL = 'SUB_SHEET' then

S_ID := to_number(p_SHEET_ID) ;

execute immediate 'call CHG_SS_STA(:p1_SUB_SHEET_ID,:p1_new_SHEET_STATUS) ' using S_ID,new_SHEET_STATUS;

end if;

end if;

execute immediate 'call CHG_SHEET_FLAG(:SHEET_LVL,:SHEET_ID,:OPT_ID)' using p_SHEET_LVL,p_SHEET_ID,p_OPT_ID

commit tran tran_CHG_SHEET_STA;

END;

事务

execute

------解决方案--------------------

1)存储过程中的事务定义没有区别、或者隐式开启、或者显示开启(begin transaction 。。。)

2)exec 存储过程名;语法如此、没特殊用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值