Create Or Replace Procedure p_Update_Add(Pn_Id In Number, --传入的id
Ln_Code Number, --返回码
Lr_Reinfo Number) Is
Ln_Flags Number;
Begin
Select Count(1) Into Ln_Flags From t_Test Where Id = Pn_Id; --t_test为测试表
If Ln_Flags > 0 Then
--有一条或多条记录存在,表示主键已经存在,进行更新操作
Update t_Test Set Xxx = Xxx;
Lr_Code := 1;
Lr_Reinfo := '进行更新';
Elsif Ln_Flags = 0 Then
--没有记录,进行添加操作
Insert Into t_Test Values (Xx, Xxx, Xxx, Xxx);
Lr_Code := 2;
Lr_Reinfo := '进行新增';
Else
Lr_Code := -1;
Lr_Reinfo := '操作失败';
End If;
Exception
When Others Then
Dbms_Output.Put_Line('出现异常');
Rollback;
End;
可以用merge语句。给你举个例子
CREATE OR REPLACE PROCEDURE test (in_deptno IN NUMBER,