上一篇文章 oracle存储过程—-变量的介绍及使用(PL/SQL)
下边是一个简单的数据库表,为了方便,我都定义成了varchar
类型。
java
首先写一个增长的存储过程:web
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;
执行语句以下:sql
set serveroutput on;
call test_add_procedure(4,'2018-08-09','李四','20','女');
上一篇的时候,执行存储过程的方法,是两边加BEGIN
、END
,或者是前边加execute
,如今又发现一个,前边加call
,并且我还据说,call
能够在java
等外部语言中调用的时候,用它去执行的存储过程。
执行完以后,发现多了一条数据。数据库
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;
执行语句以下:oracle
set serveroutput on;
call test_update_procedure(3,'赵六六');
数据库中的变化,即名称从赵六
变为赵六六
了。
删除与修改是同样的,那就不写了。svg
查询的存储过程,稍微麻烦点。
好比按照某个条件查询总条数。能够这么写:学习
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;
上边又新学习了两个概念:spa
as
以后的声明变量。这个要求跟上一篇上的declare
定义变量是同样的要求。into
赋值,即,当你相对查询结果赋值就经过into
去赋值。而且into
能够对多个参数赋值,中间用,
隔开便可。执行的语句以下:.net
set serveroutput on;
execute test_select2_procedure('女');
下一篇是 oracle存储过程—-游标(cursor)的学习3d