Sybase存储过程的建立和使用(二)

日期: 2009-07-23 作者:lsj 来源:TechTarget中国

  ·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

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

  例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.如果要计算当月工资,就必须从工资历史中查出员工距离当前最近的一次技能工资变动的结果:

  create procedure p_RsGz_JiNeng_Slt

  (@c_GeRenId char(4),@sm_JinE smallmoney output)

  as

  select @sm_JinE=JinE

  from RS_LS_GZ_JiNeng

  where RiQi=(select max(RiQi)

  from RS_LS_GZ_JiNeng

  where GeRenid=@c-GeRenId)/*找出历史记录中距离当前最近的日期*/

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

lsj
lsj

相关推荐