MSSQL编程:在营业体系中处置小数精度, 四舍五进,全...
每个Rows_log_event中包含event_type,可选值为WRITE_ROWS_EVENT、UPDATE_ROWS_EVENT、DELETE_ROWS_EVENT。从宏名字就能看出用途。在营业体系中,分歧的客户对小数的处置有分歧的办法
经由过程在设置保存的小数位数,和小数位数今后的尾数的处置办法,能够天真的满意客户请求
处置办法表
IDNUMBER(1),--设置ID
AMOUNTDOTNUMBER(4,2)DEFAULT0.01,--金额准确度1:准确到元0.1:准确到角0.01:准确到分ROUNDINGNUMBER(1),--舍进分界--9:全舍0:全进4:四舍5进
创建ORACLE函数,传进设置ID,传进金额,前往处置过的金额
存储历程完成代码以下
createorreplacefunctionGet_Real_Number(--依据处置办法ID,获得处置后的金额-盘算的金额IDINNUMBER,--处置办法IDn_AmountINNUMBER)-------------------------------------------------------------------------用途自界说数据精度处置。--创立者:Andrew-------------------------------------------------------------------------修正纪录列表:(按日期的前后按次逆序分列)--修正工夫修正人完成的功效申明--9全舍0全进4四舍5进-----------------------------------------------------------------------returnNUMBER--前往的金额ISv_amountdotVARCHAR2(5);--小数位数字符v_keepNUMBER;--保存的小数位数v_roundingNUMBER;--舍进分界v_AmountNUMBER:=0;--前往的金额BEGIN
SELECTamountdot,nvl(rounding,0)INTOv_amountdot,v_roundingFROM处置办法表WHEREid=SALE_PLACE_ID;v_keep:=Length(v_amountdot)-instr(v_amountdot,.);--要保存的小数位数IFv_rounding=9THEN--处置全舍弃v_Amount:=trunc(n_Amount,v_keep);ENDIF;IFv_rounding=4THEN--处置四舍五进v_Amount:=round(n_Amount,v_keep);ENDIF;IFv_rounding=0THEN--处置全进位v_Amount:=trunc(n_Amount,v_keep);--小数为数恰好即是请求保存的数IFv_Amountn_AmountTHEN--假如截取后的数与本来的数字分歧,进1v_Amount:=v_Amount+to_number(v_amountdot);ENDIF;RETURNv_Amount;
exceptionwhenOTHERSthenRETURNn_Amount;
ENDGet_Real_Number;
mysql使用内部操作字符集gbk来进行操作,即执行"SELECT*FROMtestWHEREname=xxxor1=1/*LIMIT1";从而注入成功 现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层. 两个月啃那本sqlserver2005技术内部-存储引擎,花了几个月啃四本书 XML字段类型更好的解决了XML数据的操作。XQuery确实不错,但是个人对其没好感。(CSDN的开发者应该是相当的熟了!) SP4是一个累积性的ServicePack,包含自以前的ServicePack发布以来所有的修补程序(包括MS03-031安全公告)。 大侠们有推荐的书籍和学习方法写下吧。 学习SQL语言的话如果要学会去做网站就不是很难!但是要做数据库管理的话就有难度了! 是否碎片会引发效率问题?这都是需要进一步探讨的东西。varbinary(max)代替image也让SQLServer的字段类型更加简洁统一。 理解了存储结构,再阅读下性能优化的章节基本上会对sqlserver有个清晰地认识
页:
[1]