zoukankan      html  css  js  c++  java
  • 数据库存储过程及变量的使用

    -定义变量 declare @sum int --变量赋值 set @sum=1 select @sum=3 --变量使用 print @sum declare @string varchar(20) set @string='abcdef' set @string=substring(@string,3,1) print @string --全局变量 print @@error print @@rowcount -- declare @pi decimal(18,2),@r decimal(18,2),@area decimal(18,2) set @pi=3.14 set @r=2 set @area=@pi*@r*@r print @area

    --语句 declare @k int set @k=7 if @k>0 begin  if @k>=10  begin   print'这是一个两位数'  end  else  begin   print '这是一个一位数'  end end else if @k=0 begin  print '数为0' end else begin  print '这是一个负数' end

    ---判断是否闰年 declare @year int set @year=2200 if @year%4=0 and @year%100!=0 begin  print '是闰年' end else if @year%100=0 and @year%400=0 begin  print '是闰年' end else begin  print '不是闰年' end -----判断是否是一元二次方程 declare @a int,@b int,@c int,@x1 decimal(18,2),@x2 decimal(18,2) set @a=1 set @b=5 set @c=4 if @a=0 begin  print '不是一元二次方程,因为a=0' end else begin  declare @sqrt decimal(18,2)  set @sqrt=@b*@b-4*@a*@c  if @sqrt<0  begin   print '此方程无解,因为sqrt小于0'  end   else if @sqrt=0  begin   set @x1 = (-@b+SQRT(@sqrt))/(2*@a)   print '有两个相等的根,结果为'+cast(@x1 as varchar(20))  end  else  begin   set @x1 = (-@b+SQRT(@sqrt))/(2*@a)   set @x2 = (-@b-SQRT(@sqrt))/(2*@a)   print '有两个不相等的根,结果为x1='+cast(@x1 as varchar(20))+'x2='+cast(@x2 as varchar(20))  end end

    ---存储过程 alter proc ChaXun as begin  select *from Score end go --执行 exec chaxun --删除 drop proc chaxun

    --输入参数的存储过程 alter proc jiayibai @shuru int, @canshu int as begin  print @shuru+@canshu end go exec jiayibai 10,120 --是否闰年 create proc isRunNian @year int as begin  if @year%4=0 and @year%100!=0  begin   print '是闰年'  end  else if @year%100=0 and @year%400=0  begin   print '是闰年'  end  else  begin   print '不是闰年'  end end go declare @jieguo int exec @jieguo=isRunNian 2100 print @jieguo

    ----一元二次方程存储过程 alter proc yiyuanerci @a int, @b int, @c int as begin  if @a=0  begin   --print '不是一元二次方程'   return 1  end  else  begin   declare @sqrt decimal(18,2)   set @sqrt = @b*@b-4*@a*@c   if @sqrt>0   begin    --print '两个不同的根'    return 2   end   else if @sqrt=0   begin    --print '两个相同的根'    return 3   end   else   begin    --print '无解'    return 4   end  end end go declare @fanhui int exec @fanhui = yiyuanerci 0,4,3 if @fanhui=1 print '请仔细阅读一元二次方程的构造规则' --out输出参数 alter proc outzhi @shuru int, @jiashi int output, @jiaershi int output as begin  set @jiashi=@shuru+10  set @jiaershi=@shuru+20  return 1 end go declare @shuchu1 int,@shuchu2 int,@return int exec @return=outzhi 15,@shuchu1 output,@shuchu2 output print @shuchu1 print @shuchu2 print @return

  • 相关阅读:
    使用remove_constants工具查看Oracle是否使用绑定变量
    v$sqlarea,v$sql,v$sqltext这三个视图提供的sql语句有什么区别?
    Cardinality (基数)
    分区表操作
    递归连接查询
    解决Android应用安装快完毕时提示签名冲突,android签名文件生成(转)
    Oracle的Numer类型与C,C#数据类型对应关系
    Spring学习(四)——使用Spring JDBC访问数据库
    Spring学习(三)——集成 Velocity
    Spring学习(二)——使用Gradle构建一个简单的Spring MVC Web应用程序
  • 原文地址:https://www.cnblogs.com/577521a/p/4149376.html
Copyright © 2011-2022 走看看