2014年1月15日
摘要: 以前很少接触触发器。需求是这样的,CMS_PRODUCT_BASE表中POI基本信息按照大类的不同,又将数据存在不同的大类表中,如大类为09的poi存储在CMS_PRODUCT_BASE_09表中。现在需要总表和各个分表中的数据要求保持一致。已经有一个触发器,功能是当像总表中插入一条数据时,自动的将该条信息保存到其对应的分表中。需要完成两个触发器:1 当总表中删除一条数据时,相应分表中也要删除该条数据。2 当总表中修改一条数据时,相应分表中的数据也要修改。完成的程序是这样的。修改表内容:create or replace trigger tri_cms_product_base_upd af. 阅读全文
posted @ 2014-01-15 13:32 lxlck 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 需求是这样的:程序每隔几个小时,从表中取100个数据,监测其正确性。 按照正常的写法,每次取出的结果都是一样的。 select * from base_part where rownum<10,因为oracle每次的执行计划都是一样的,数据扫描方法顺序都是一样的,所以返回的结果也都是一样的。 随机取数据的方法,一般网上有两种, 一是用随机数排序。这种方法能够取到正确的结果,但是属于数据量很大的情况,排序是非常耗时的。而我的表基本上都在百万以上,所以这种方法只能pass了。按照随机数排序实际上是把随机数当做一列,然后排序。对应的语句为: SELE... 阅读全文
posted @ 2014-01-15 13:27 lxlck 阅读(2524) 评论(0) 推荐(0) 编辑
摘要: 需求是这样的,产品表里面混进去了部分坏数据,这些数据的poiid中有换行符,需要把这些poiid都查询出来。有两个库,一个oracle,一个mysql网上搜了一下。找到了这个:关于SQL的换行符和字符串连接符,在MySQL、SQL Server和Oracle中均有不同,下面以列表显示。MySQLSQL ServerOracle换行符\n或\r\n或CHAR(10)CHAR(13)CHR(10)字符串连接符CONCAT()+||或CONCAT()Sql语句这样就容易写了。Oracle:select * from base_product p where regexp_like(poiid,chr 阅读全文
posted @ 2014-01-15 13:24 lxlck 阅读(7788) 评论(0) 推荐(0) 编辑
  2013年12月20日
摘要: 前两天频发遇到这个问题,领导开始让截断字符串后插入,但是终究不是解决之道,后来再遇到,必须要解决了。环境:oracle:11.2.0.3.0。驱动:ojdbc14_g.jar目标表字段类型:CLOB网上搜了一下,基本上有以下几种方法:1、使用setCharacterStream()方法,代替setString;2、使用OCI驱动连接Oracle数据库。3 驱动的问题,换其他版本的驱动。4 用setClob的方式。依次尝试:1 换成setCharacterStream()方法,依然报错。2 没有考虑这种解决方法,因为OCI驱动要求机器上装有oracle客户端。因为程序肯定要其他机器上运行,就算这 阅读全文
posted @ 2013-12-20 11:59 lxlck 阅读(2737) 评论(0) 推荐(0) 编辑
  2013年3月4日
摘要: 2012年,完成了人生中的又一个大事,生了一个可爱的宝宝。新的一年,为了宝宝,要努力学习。周末去某司笔试,深受打击,觉得跟牛人差距好大,那些算法题根本没有思路,就连数学题也没有思路。所以下决心努力学习,希望能够坚持。今年还是继续ORACLE,JAVA,SHELL学习,另外要再学习数据结构和算法。JAVA:还是在工作中继续学习,参考书《JAVA编程思想》/《大话设计模式》ORACLE:在工作中学习,参考书《OCP认证考试指南全册》SHELL:利用空余时间学习,参考书《LINUX SHELL从入门到精通》/《鸟哥的LINUX私房菜》算法和数据结构:笔试面试都爱考这个,看来就是基础。上学的时候只学了 阅读全文
posted @ 2013-03-04 15:25 lxlck 阅读(161) 评论(0) 推荐(0) 编辑