Oracle 自定义过程与函数

Oracle 自定义过程与函数

1、自定义过程

1、过程定义

create or replace procedure 名字 ([参数1] [in|out] [type])
[is|as]
变量声明部分;
begin
执行部分;
exception
异常部分;
end;

2、实例

1、写一个过程,删除emp表中指定员工记录
 create or replace procedure p_delete(empno_ in number)
 is
 begin
 delete from emp where empno = empno_;
 end;
2、写一个过程,用于计算emp表中指定部门的工资总和,并统计其中的员工数量。
//采用变量输出的方式完成,也可以采用如上方式
create or replace procedure p_total_emp(dept_no in number,sum_sal out number,count_emp out number)
is
begin
select count(*) into count_emp from emp group by deptno having deptno = dept_no;
select sum(sal) into sum_sal from emp group by deptno having deptno = dept_no;
end;
//声明两个变量
SQL> var count_emp number;
SQL> var sum_sal number;
//执行过程
exec p_total_emp(10,:sum_sal,:count_emp);
//打印变量当前值
SQL> print sum_sal count_emp;

   SUM_SAL
----------
      8750


 COUNT_EMP
----------
         3

2、自定义函数

1、函数定义

create or replace function [f_name] ([参数1] [in|out] [type])
return [return_type]
[is|as]
变量声明
begin
函数体
exception ……
return %type;
end;

2、实例

1、写一个函数,用于计算emp表中指定部门的工资总和,并统计其中的员工数量。
//函数体
create or replace function f_total_emp(dept_no in number,sum_sal out number,count_emp out number)
return number
is
begin
select sum(sal) into sum_sal from emp group by deptno having deptno = dept_no;
select count(*) into count_emp from emp group by deptno having deptno = dept_no;
return 1;
end;
//变量声明
SQL> var sum_sal number;
SQL> var count_emp number;
SQL> var result number;
//执行函数
SQL> exec :result := f_total_emp(10,:sum_sal,:count_emp);

PL/SQL 过程已成功完成。
//打印结果

SQL> print sum_sal count_emp;

   SUM_SAL
----------
      8750


 COUNT_EMP
----------
         3

总结:

1、过程的使用

2、函数的使用

3、系统函数的实现

例如:
select sum(sal) from emp;
关于sum函数传参问题,返回值问题
以及emp表的结果集的传递问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值