暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

oracle存储过程简单入门(二)

软件实施干货分享 2020-07-01
407
在第一节里面,我们主要通过一些简单的打印输出操作,来演示了一下存储过程的编写和调用的语法结构,今天主要通过存储过程来实现一些简单的增删改查操作,使存储过程具备一定的使用意义。
首先在数据库中创建一张表,表结构如下:

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;--使用set serveroutput on   命令设置环境变量serveroutput为打开状态,使用函数dbms_output.put_line()可以输出参数的值
call test_add_procedure(4,'2018-08-09','李四','20','女');--调用存储过程
复制

执行完之后,发现数据表中多了一条数据。

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
 之后的声明变量

②第二个是into
 赋值,即,当你相对查询结果赋值就通过into
 去赋值。并且into
 可以对多个参数赋值,中间用,
 隔开即可。

执行的语句如下:

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

参考链接:https://blog.csdn.net/wohaqiyi/java/article/details/81529997


文章转载自软件实施干货分享,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论