创建存储过程输入部门编号
㈠ 浠ュ憳宸ョ紪鍙蜂负鍙傛暟锛岃繑锲炲叾宸ヨ祫镄勫钩鍧囧笺
浠ュ憳宸ュ彿涓哄弬鏁帮纴杩斿洖璇ュ憳宸ユ墍鍦ㄩ儴闂ㄧ殑骞冲潎宸ヨ祫
create or replace function fun_sal(p_empno emp.empno%type)
return emp.sal%type
as v_sal emp.sal%type;
begin
select avg(sal) into v_sal from emp where deptno=
(select deptno from emp where empno=p_empno);
return v_sal;
end
begin
dbms_output.put_line (fun_sal (7844));
end;
镓╁𪾢璧勬枡
渚1锛氩垱寤轰竴涓瀛桦偍杩囩▼锛屼互锻桦伐鍙蜂负鍙傛暟锛岃緭鍑鸿ュ憳宸ョ殑宸ヨ祫銆
create or replace procere showsal(p_empno emp.empno%type) as v_sal emp.sal%type; begin
select sal into v_sal from emp where empno=p_empno; dbms_output.put_line(v_sal); end; begin showsal(7844); end;
渚2锛氩垱寤轰竴涓鍑芥暟锛屼互閮ㄩ棬鍙蜂负鍙傛暟锛岃繑锲炶ラ儴闂ㄧ殑骞冲潎宸ヨ祫锛
create or replace function fun_avgsal(p_deptno emp.deptno%type) return emp.sal%type as v_sal emp.sal%type; begin
select avg(sal) into v_sal from emp where deptno=p_deptno; return v_sal; end; begin dbms_output.put_line (fun_avgsal(10)); end;
㈡ oracle中怎么执行带有输出参数的存储过程,在程序中我知道怎么调用,
1、新建一个存储过程(Procere)。
建议你的数据库建立部门表的信息
在你的员工基本信息表里加一个
alter table 员工基本信息表
add column 部门编号 char(10)
建立部门表
create table 部门表
(
部门编号 char(10),
部门名称 char(10)
)
create view ccc
as
select max(d.基本工资-c.扣除工资) as 部门最高工资,min(d.基本工资-c.扣除工资) as 部门最低工资,avg(d.基本工资-c.扣除工资) as 部门平均工资,sum(d.基本工资-c.扣除工资) as部门工资总和
from 部门表 as b,员工基本信息表 as a,员工考勤情况表 as c,员工工情况表 as d
where a.员工号=c.员工号 and a.工种号=d.工种号 and a.部门编号=b.部门编号
group by b.部门名称
具体可以在改改
存储过程
create proc 过程名 @变量
as
begin
过程体
end