代码改变世界

随笔分类 -  DataBase

记:一次在正式环境下的大批量业务数据纠正

2010-07-19 18:12 by stubman, 438 阅读, 收藏, 编辑
摘要: 在一次与客户关于系统年工作量报表统计的讨论后,翻看系统相关模块的业务代码,理清思路后得到了最不愿意接受的结论:该模块的数据流程的处理有误,过去一年多产生的相关数据在某种意义上说都是脏数据! 之所以说是脏数据,是因为这些数据本来是源于用于统计的出发点进行设计的,可是最后却事与愿违,客户要的统计数据走的不是这样的业务逻辑【回过头去想,当时的需求没有做的足够充分、准确,也是导致这个错误的关键】。 事情已经发生了,唯一能做的只有补救了。花了一段时间,对相关模块的业务逻辑全面了解之后确定,解决方法是有的:删除过往一年的统计数据表相关数据,根据过往的业务数据,按照正确业务需求对数据进行处理,插入正确的统. 阅读全文

Oracle数据库应用SQL语句进行分页,以及引申出来对rownum的理解

2009-09-27 19:57 by stubman, 582 阅读, 收藏, 编辑
摘要: 分页的的方法从数据获取的角度上说,可以分为两种:其一,从数据库取出所有满足条件的数据,放入内存,然后在呈现的时候过滤,达到分页效果;其二,在SQL语句的写法上下文章,根据传入的页码、行数,只取出要显示部分的记录;我在项目中一般是用第二种方法,对于第一种方法的不足,数据量的增加会造成服务器内存消耗过大及带宽不足等性能瓶颈。分页SQL语句的写法如下:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT*FROM(SELECTrownuma 阅读全文

统计报表优化中用到的处理DataTable的方法(通过此方法模仿左连接效果)

2009-09-15 16:30 by stubman, 1068 阅读, 收藏, 编辑
摘要: 这半年一直再做一个大项目的报表的开发与维护。(数据库:Oracle)这个项目中,报表一般都是统计各个机构指定项目的数据,以下给一个范例:一般的实现,后台一条SQL语句,以机构(organ)为基准,每个项目都用【select organ,count(*) from table group by organ】的写法构造出虚拟表,然后虚拟表通过organ左连接,为空的赋0。得出的SQL语句一般是这样(假设有两个项目要统计):SQLCode highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlig 阅读全文

Oracle自定义函数解决数据类型转换出错的问题

2009-09-02 19:49 by stubman, 855 阅读, 收藏, 编辑
摘要: 昨天开发过程(使用Oracle 9i)中,写了一个查询某字段,某个数值范围内的记录的SQL语句 如:select* from table where memeber>1 andmemeber<9 但是,由于种种原因,这个字段有的记录不是数字类型(有可能是多个内容公用一个字段造成的,也有可能是输入的时候没有限制好,输入了全角字符造成的),这样这个SQL语句就会报错。一开始的解决方案是:通过比较字符串来代替比较数字 如:select* from table where memeber>'1' andmemeber<'9 ' 但是发现,这样会有 阅读全文
点击右上角即可分享
微信分享提示