下面是本人在Oracle数据库里写的函数,执行也很简单:
函数:
CREATE OR REPLACE Function Func_提前出院医保审核_UPDATE
(
病人id_In number,
住院次数_In Number,
收费细目id_in Number,
单据号_in varchar2
)
Return Varchar2
Is
Pragma Autonomous_Transaction;
v_修改状态 Number := 0;
v_姓名 Varchar2(64);
v_是否上传0 Number;
v_是否上传1 Number;
Begin
Select Sum(nvl(是否上传,0)) Into v_是否上传0 From 病人费用记录 Where (记录性质=3 Or 记录性质=2) And (是否上传=0 Or 是否上传 Is Null) And 记录状态<>1 And 病人id=病人id_In And 主页id=住院次数_In And 收费细目id=收费细目id_in And No=单据号_in;
While v_修改状态 = 0 Loop
Update 病人费用记录 Set 是否上传=1 Where (记录性质=3 Or 记录性质=2) And (是否上传=0 Or 是否上传 Is Null) And 记录状态<>1 And 病人id=病人id_In And 主页id=住院次数_In And 收费细目id=收费细目id_in And No=单据号_in;
Commit;
v_修改状态 := 1;
End Loop;
Select Distinct 姓名 Into v_姓名 From 病人信息 Where 病人id=病人id_In;
Select Sum(nvl(是否上传,0)) Into v_是否上传1 From 病人费用记录 Where (记录性质=3 Or 记录性质=2) And 记录状态<>1 And 病人id=病人id_In And 主页id=住院次数_In And 收费细目id=收费细目id_in And No=单据号_in;
If v_是否上传0=0 And v_是否上传1>0 Then
Return (v_姓名||' 修改成功');
Else
Return (v_姓名||' 修改失败');
End If;
Exception
When Others Then
Rollback;
Return (v_姓名||' 修改失败');
End Func_提前出院医保审核_UPDATE;
执行
Select Func_提前出院医保审核_UPDATE([0],[1],[2],[3]) As 返回信息 From dual
SQLSERVER里面,怎么弄,却不知道了。
[此贴子已经被作者于2014-3-1 10:35:58编辑过]