oracle的存储过程使用详解

Oracle存储过程在实际数据库开发过程当中会经常使用到,作为一个数据库开发者必备的技能,它有着SQL语句不可替代的作用。所谓存储过程,就是一段存储在数据库中执行某块业务功能的程序模块。它是由一段或者多段的PL/SQL代码块或者SQL语句组成的一系列代码块。

创建Oracle存储过程语法
create [or replace] procedure 过程名
( p1 in|out datatype,
  p2 in|out datatype,
  ...
  pn in|out datatype
     
) is   
    ....--声明部分
    begin
    ....--过程体
    end;
语法解析:
1、procedure 关键字是创建存储过程的命令。
2、create [or replace] :如果存储过程已经存在则覆盖替代原有的过程。
3、in|out :存储过程具有入参和出参两种参数选择,in表示的是入参,out表示的是出参,在使用过程的时候,入参必须得有对应的变量传入,出参得有对应的变量接收。
4、datatype表示出入参变量对应的数据类型。
5、is后面跟着的是过程当中使用到的声明变量。
6、begin...end 中间编写的就是存储过程的具体操作。


创建操作表
create table TEST
(
  id         NUMBER(14),
  username   VARCHAR2(255),
  password   VARCHAR2(255),
  createdate DATE default sysdate,
  state      CHAR(2)
);

创建无参数存储过程
create or replace procedure testprocedure --创建或修改存储过程,存储过程名为testprocedure
as 
atotal number(10); --创建一个数字类型的变量atotal
begin --存储过程开始
select count(*) into atotal from base.TEST; --把count计数出来的数量 通过into赋值给atotal变量
DBMS_OUTPUT.put_line('总数'||atotal); --数据库输出数量
end testprocedure; --存储过程结束

存储过程的执行
--执行存储过程方法1::call
call testprocedure();

--执行存储过程方法2:begin end
begin
testprocedure();
end;

创建有参数存储过程
--创建或修改存储过程,存储过程名为findclass,输入参数为classId,输出className
create or replace procedure testprocedure(uid in int,username out varchar2)
as 
--存储过程开始
begin 
--把查询出来的class_name 赋值给输出变量className,查询条件为classId
select username into username from base.TEST where id = uid;
--数据库输出数量,这句输出只是方便测试,真正输出的值是out的值
DBMS_OUTPUT.put_line('姓名:'||username);
--存储过程结束
end testprocedure;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值