Oracle存储过程

来源:互联网 发布:农村淘宝店怎么开 编辑:程序博客网 时间:2024/06/09 20:44

好久都没有写过Oracle存储过程了,一般写查询语句比较多,自己就试着写了一下插入、删除、修改记录的存储过程。

插入:

CREATE OR REPLACE Procedure p_insert_t_stu --存储过程名称
   (
        p_stuid in Number,
         p_stuname in Nvarchar2,
         p_stusex in Nvarchar2,
         p_stuadd in Nvarchar2
 )
   as
   BEGIN
 insert into t_stu
 values
 (p_stuid,p_stuname,p_stusex,p_stuadd);
 commit;
 end;

 

删除:

 

CREATE OR REPLACE Procedure p_delete_t_stu --存储过程名称
(
       p_stuid in Number,
        p_msg Out Nvarchar2
)
 Is
flag Integer := 1;
v_stuid Number;
 Begin
 Select flag Into v_stuid From t_stu Where stuid=p_stuid;
Delete t_stu
Where
stuid=p_stuid;
 commit;
If flag=1 Then
    Begin
         p_msg:='删除成功'
    End;
 End If;
Exception 
    When Others Then
          p_msg:=Sqlerrm || ',' || '删除失败';
 END;

修改:

CREATE OR REPLACE Procedure p_update_t_stu --存储过程名称
  (
         p_stuid in Number,
         p_stuname in Nvarchar2,
         p_stusex in Nvarchar2,
        p_stuadd in Nvarchar2
  )
  as
  BEGIN
 Update t_stu Set stuname=p_stuname,stusex=p_stusex,stuadd=p_stuadd
 Where
 stuid=p_stuid;
 commit;
 end;

 有进要通过jdbc调用存储过程,来说一下怎样来实现?
 在我见过的有两种情况:
         1)返回一个结果集(ResultSet)。
  2)返回一个特定的值。
 下面来详细的说明。
 1)返回一个结果集(ResultSet),这种类似通常的处理结果集
    如果事先就有一个类似如下的procedure

            那么我们将通过如下的代码来调用

 2)返回一个特定的值。也就是说,在procedure的定义中已经用output输出参数了。请看下面的proceduer

那么我们将通过如下的代码来调用

原创粉丝点击