oracle存储过程----存储过程执行简单的增删改查sql

存储过程执行简单的增删改查sql

  上一篇文章 oracle存储过程—-入门存储过程
  下边是一个简单的数据库表,为了方便,我都定义成了varchar 类型。
这里写图片描述

1、存储过程执行增加sql

  首先写一个增加的存储过程:

create or replace procedure test_add_procedure
(id varchar,createtime varchar,name varchar,
age varchar,sex varchar)
AS
BEGIN
insert into ly_ds values(id,createtime,name,age,sex);
commit;  --别忘了加提交
end;

  执行语句如下:

set serveroutput on;
call test_add_procedure(4,'2018-08-09','李四','20','女');

  上一篇的时候,执行存储过程的方法,是两边加BEGINEND ,或者是前边加execute ,现在又发现一个,前边加call ,而且我还听说,call 可以在java 等外部语言中调用的时候,用它去执行的存储过程。
这里写图片描述
  执行完之后,发现多了一条数据。

2、存储过程执行修改、删除sql
create or replace procedure test_update_procedure
(dsId varchar,mc varchar)
AS
BEGIN
update ly_ds set ly_mc = mc where id = dsId ;
commit; --别忘了加提交
end;

  执行语句如下:

set serveroutput on;
call test_update_procedure(3,'赵六六');

  数据库中的变化,即名称从赵六 变为赵六六 了。
这里写图片描述
  删除与修改是一样的,那就不写了。

3、存储过程执行查询sql

  查询的存储过程,稍微麻烦点。
  比如按照某个条件查询总条数。可以这么写:

create or replace procedure test_select2_procedure
(sex  varchar)
AS
countNum number(10); --别忘了写上具体的长度,并且以分号结束
maxId number(10); --别忘了写上具体的长度,并且以分号结束
BEGIN
select count(*),max(id) into countNum,maxId from ly_ds where LY_NB=sex;
dbms_output.put_line(countNum);
dbms_output.put_line(maxId);
END;

  上边又新学习了两个概念:

  • 第一个是as 之后的声明变量。这个要求跟上一篇上的declare 定义变量是一样的要求。
  • 第二个是into 赋值,即,当你相对查询结果赋值就通过into 去赋值。并且into 可以对多个参数赋值,中间用, 隔开即可。

  执行的语句如下:

set serveroutput on;
execute test_select2_procedure('女');

  上边这个简单的查询是,返回结果一条记录的情况,如果多条记录,就需要循环,并且使用游标了。我放到下一篇里详细再写了。

如果有了下一篇,我会在这里加上连接的。

猜你喜欢

转载自blog.csdn.net/wohaqiyi/article/details/81529997