oracle数据库exec用法,Sql中exec的用法

通常我们会使用exec这个函数来实现一些动态的功能,因为它执行的一个字符串语句,可以通过在字符串中添加变量来实现动态的执行语句。例如:

exec( ' insert into tbl_back(costdept,sumtotalwork1,totalmoney1)'+

' select costdept,sum(sumtotalwork) as sumtotalwork,sum(totalmoney) as totalmoney '+

' from Rpt_WorkCostYear where and '+ @conditionstr+

' group by costdept'+

' order by costdept')[@more@]

可以通过对局部变量@month1和@conditionstr的动态赋值来实现语句的动态执行。但是这样书写的时候,往往没有办法利用到查询分析器的可以自动让关键字以不同颜色显示的这一功能来进行输入时的语法判定。因为字符串统统以红色显示,这样书写时很容易错写关键字,一个小技巧可以避免这样尴尬——在编写时这样写:exec('' insert into ……即在字符串开始的界定符“'”之前再加一个“'”以抵消掉字符串界定,这样的话后面的书写就仍然可以利用查询分析器的语法检测功能了,最终完成时再去掉那个多加的“'”即可。

在SQL中使用除法的时候要特别小心,当除号两边的数都是整数时,两个数相除的结果以整数显示,结果会将相除的小数部分去掉,保留下整数部分,例如:SELECT 1/4 AS NUM 结果是0而不是0.25,这在一些复杂的表达式中尤其容易被忽略——((SELECT SUM(totalwork) FROM EmpWorkData WHERE AND SUM(totalwork) FROM EmpWorkData WHERE AND (SELECT SUM(totalwork) FROM EmpWorkData WHERE AND )由于选择语句选出的结果为整数,所以,结果并不是像预期的那样为一个实数,通常的处理方法为让某个整数乘以一个1.0,系统运算的时候会自动的将运算中的所有数据自动转换为实数进行运算,最终结果也以实数显示。例如:select 1.0*1/4 as num返回的结果就是0.25。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值