新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > 数据库 > Sybase教程 > 正文:细化解析:Sybase存储过程的建立和使用

细化解析:Sybase存储过程的建立和使用

新客网 XKER.COM 2007-10-30 来源: yashi 收藏本文

 

·SQL_statements:定义存储过程功能的SQL语句。

 

·@return_status:接受存储过程返回状态值的变量。

 

·[@parameter_name=]value:实际参数(实参),@parameter_name为实参的名称(可选)。如果某个实参以@parameter_name=value提供,那么随后的实参也都要采用这一形式提供。

 

·[@parameter_name=]@varialbe[OUTput]:将变量@varialbe中的值作为实参传递给形参@parameter_name(可选),如果变量@varialbe是用来接受返回的参数值,则选项OUTput不可缺少。   

 

存储过程的建立和使用,我们将通过几个例子进行介绍。

 

假设有一个用下述语句生成的技能工资表RS-LS-GZ-JiNeng:

 

create table RS_LS_GZ_JiNeng     /*技能工资表*/ 

(GeRen_id char(4),         /*个人代码 */ 

RiQi smalldatetime,         /*执行日期 */ 

YuanYin_id char(1) null,       /*变动原因代码 */ 

JinE smallmoney)           /*技能工资金额 */

 

该表存储着某单位员工多年来技能工资的历史档案。

 

例1.如果要查询全体员工的技能工资变动历史,则可先建立一个存储过程p-RsGz-JiNeg-All:

 

create procedure p_RsGz_JiNeng_All as 
select * 
from RS_LS_GZ_JiNeng 
order by GeRenid,RiQi

然后用批处理语句调用存储过程p_RsGz_JiNeng_All进行查询:

 

execute p_RsGz_JiNeng_All

 

本例只显示查询到的数据,无输入、输出参量,是最简单的一个存储过程。 [page]

 

例2.如果要查询某人技能工资的变动历史,可建立另一个存储过程p_RsGz_JiNeng:

 

create procedure p_RsGz_JiNeng @c_GeRenId char(4) 
as
select *from RS_LS_GZ_JiNeng 
where GeRen_id=@c_GeRenId 
order by RiQi

之后用批处理语句调用存储过程p_Rs_Gz_JiNeng进行查询:

 

declare @GeRenId char(4) 
select @GeRenId="0135" /*设要查询员工的个人代码为"0135" */ 
execute p_RsGz_JeNeng @c_GeRenId=@GeRenId

 

 

存储过程p_RsGz_JiNeng中定义了一个形参@c_GeRenId,是字符型变量。在调用该过程的批处理中,既可以用具体的值也可以用变量作为实参。用变量作实参(如本例)时,必须用del are语句加以说明。值得注意的是,在批处理的调用过程语句中,@c_GeRenId=@GeRenId中的@ c_GeRenId是存储过程p_RsGz_JiNeng中的形参名,不是批处理中的变量,所以不能将它列入d eclare语句的变量单中。

共3页: 上一页 [1] [2] [3] 下一页
收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐