存储过程执行简单的增删改查sql
上一篇文章 oracle存储过程—-变量的介绍及使用(PL/SQL)
下边是一个简单的数据库表,为了方便,我都定义成了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','女');
上一篇的时候,执行存储过程的方法,是两边加BEGIN
、END
,或者是前边加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('女');