存储过程

本文详细介绍并演示了Oracle数据库中存储过程与函数的创建及调用方法,包括无参数、带输入参数、带输出参数的存储过程,以及函数的使用。通过具体案例,如统计职工人数、查询职工信息、计算平均工资等,深入解析了存储过程和函数的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)无参数存储过程创建和调用-统计emp表中职工人数

create or replace procedure emp_count

as

v_total number(10);

begin

select count(*) into v_total from emp;

dbms_output.put_line('total is:'||v_total);

end;

exec emp_count

(2)带输入参数的存储过程创建和调用-输入职工编号查看该职工的信息

create or replace procedure proc_ename (vempno in varchar2)

as

empno number(4);

ename varchar2(10);

begin

select empno,ename into empno,ename from emp where empno=vempno;

dbms_output.put_line(empno||ename);

end;

exec proc_ename(7369);

(3)带输出参数的存储过程创建和调用-部门30的平均工资

create or replace procedure proc_avgsal(avgsal out number)

as

begin

select avg(sal) into avgsal from emp where deptno=30;

end;

 

declare

v_avgsal number;

begin

proc_avgsal(v_avgsal);

dbms_output.put_line('deptno 30 is'||v_avgsal);

end;

 

(4)函数创建和调用

create or replace function fun_sal(inputsal number)

return varchar2

as

salary varchar2(20);

begin

if inputsal>=3000 then

salary:='upper';

else

salary:='lower';

end if;

return(salary);

end;

select emp.*,fun_sal(sal) from emp;

 

(5)程序包封装存储过程和函数

create or replace package emp_package

is

procedure emp_list;

end emp_package;

 

create or replace package body emp_package

is

procedure emp_list

as

cursor emp_cursor is select * from emp;

begin

for emp_record in emp_cursor loop

dbms_output.put_line(emp_record.empno||emp_record.ename||emp_record.sal);

end loop;

end;

end emp_package;

exec emp_package.emp_list;

转载于:https://www.cnblogs.com/Azaimer/p/11093059.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值