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

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

  上一篇文章 oracle存储过程—-变量的介绍及使用(PL/SQL)
  下边是一个简单的数据库表,为了方便,我都定义成了varchar 类型。
这里写图片描述java

一、存储过程执行增长sql

  首先写一个增长的存储过程: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','女');

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

二、存储过程执行修改、删除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;

  执行语句以下:oracle

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

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

三、存储过程执行查询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;

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

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

  执行的语句以下:.net

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

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

  下一篇是 oracle存储过程—-游标(cursor)的学习3d