数据读取中...
 您当前位置:惠州维修 -> 网络-> 数据库技术交流-> SYBASE 文章搜索:  
Sybase存储过程的建立和使用
作者:转载 来源:惠州维修
日期: 2006-11-20
放大字体显示 缩小字体显示 打印文章 推荐给朋友


  例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)/*找出历史记录中距离当前最近的日期*/

  调用存储过程p_RsGz_JiNeng_Slt进行查询:

  declare @GeRenId char(4),@JinE smallmoney

  select @GeRenid="0135"/*设要查询员工的个人代码为"0135"*/

  select @JinE=0

  execute p_RsGz_JiNeng_slt @c_GeRenId=@GeRenId,@sm_JinE=@ JinE output

  这里,变量 @JinE用来存储过程形参@sm_JinE传回的金额。在调用过程语句中,@sm_JiE = @JinE output中的output不可省略。否则,变量@JinE将得不到形参传回的数值而始终为零(等于初值)。

[本文共有 5 页,当前是第 3 页] <<上一页 下一页>>

文章页数:[1] [2] [3] [4] [5] 
帮助你我他: 1.我有问题请教 2.我要投稿>>>
更多相关资料搜索:
热点文章
最新文章
相关文章
版权申明:除部分特别声明不要转载,或者授权本站独家播发的文章外,大家可以自由转载本站的原创文章,但原作者和来自本站的链接必须保留(非本站原创的,按照原来自一节,自行链接)。文章版权归本站和作者共有。
转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去本站水印。
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
发表评论  打印  刷新  推荐给朋友  返回顶部  关闭

网上大名: