oracle 过程、函数、包、触发器

一、存储过程

1、创建语法

CREATE[OR REPLACE] PROCEDURE<过程名>

(

<参数1>,[方式1]<数据类型1>,

<参数2>,[方式2]<数据类型2>,

...)

IS|AS

PL/SQL过程体;


2、例1

声明

create or replace procedure demo(Name IN VARCHAR2) is
begin
  if Name='M' then
    dbms_output.put_line('是男的');
    else 
      dbms_output.put_line('是女的');
      end if;
end demo;
调用

begin
  -- Call the procedure
 demo('M');
end;
输出

是男的

3、删除过程

DROP PROCEDURE demo;

4、过程的参数有3种类型,分别如下:

1、in参数类型

这个是输入类型的参数,表示这个参数值输入给过程,供过程使用。

2、out参数类型

这是个输出类型的参数,表示这个参数在过程中被赋值,可以传给过程以外的部分或者环境。

3、in out参数类型

这种类型的参数其实是综合了上述两种参数类型,既向过程体传值,在过程体中也被赋值而传向过程体外。


二、函数

函数一般用于计算和返回一个值,可以将经常需要进行计算写成函数。函数的调用是表达式的一部分,而过程的调用是一条PL/语句。

函数与过程在创建的形式上有些相似,也是编译后放在内存中供用户使用,只不过调用时函数要用表达式,而不像过程只需要调用过程名。另外,函数必须有一个返回值,而过程则没有。

1、创建函数

CREATE[OR REPLACE] FUNCTION<>

(<参数1>,[方式 1]<数据类型 1>,<参数 2>,[方式 2]<数据类型 2>...)

RETURN<表达式>

IS|AS

PL/SQL程序体  

2、例1

create or replace function getSexCount(sex in varchar2) 
return number
 is
  Result number;
begin
  if sex='M' then
    select count(*) into Result from TEACHERS where SEX='M';     

    else    
     select count(*) into Result from TEACHERS where SEX='F';     
    end if;
  return(Result);
end getSexCount;
调用

select getSex('n') from  dual

3、删除函数

DROP FUNCTION getSexCount;



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值