创建一个存储过程,以员工号为参数,输出该员工的工资。(急) 20
CREATE OR REPLACE PROCEDURE 存储过程名(in_id IN VARCHAR2,out_wage OUT VARCHAR2)
AS BEGIN SELECT wage(此为你数据库表中员工工资字段名) into out_wage FROM 员工工资表名 WHERE id(此为你数据库表中员工工号字段名)=in_id;
END 存数过程名;in_id为输入的员工工号;out_wage为查询后输出地工资。在此例中,它们为VARCHAR2,设置的为NUMBER类型,要相应做修改。
扩展资料
这类语言主要提供以下功能,让用户可以设计出符合应用需求的程序:
1、变量说明
2、ANSI(美国国家标准化组织)兼容的SQL命令(如Select,Update….)
3、一般流程控制命令(if…else…、while….)
4、内部函数
种类
1.系统存储过程
以sp_开头,用来进行系统的各项设定.取得信息.相关管理工作。
2.本地存储过程
用户创建的存储过程是由用户创建并完成某一特定功能的存储过程,事实上一般所说的存储过程就是指本地存储过程。
3.临时存储过程
分为两种存储过程:
一是本地临时存储过程,以井字号(#)作为其名称的第一个字符,则该存储过程将成为一个存放在tempdb数据库中的本地临时存储过程,且只有创建它的用户才能执行它;
二是全局临时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
4.远程存储过程
在SQL Server2005中,远程存储过程(Remote Stored Procedures)是位于远程服务器上的存储过程,通常可以使用分布式查询和EXECUTE命令执行一个远程存储过程。
5扩展存储过程
扩展存储过程(Extended Stored Procedures)是用户可以使用外部程序语言编写的存储过程,而且扩展存储过程的名称通常以xp_开头。
参考资料来源:百度百科-存储过程
@employeeID
as
begin
--你的查询语句 例如:
select Wages from EmployeeMsg where EmployeeID=@employeeID
end
--exec GetEmployeeWages 12
有不明白的,可以给我留言
procedure
wagesum(@deptno
char(10))
as
select
@deptno,count(wage)
as
工资总和
from
staff
where
deptno=@deptno
调用存储过程
declare
@t
char(10)
set
@t=‘部门号'
这个部门号你自己输入,看你想查哪个部门的工资总和
exec
wagesum
@t
具体你再去调试看看,应该就是这个样子
in_id IN VARCHAR2,
out_wage OUT VARCHAR2)
AS
BEGIN
SELECT wage(此为你数据库表中员工工资字段名) into out_wage FROM 员工工资表名 WHERE id(此为你数据库表中员工工号字段名)=in_id;
END 存数过程名;
PS:in_id为输入的员工工号;out_wage为查询后输出地工资。在此例中,它们的为VARCHAR2,也可能你们设置的为NUMBER类型,请相应修改。