摘要:
以前很少接触触发器。需求是这样的,CMS_PRODUCT_BASE表中POI基本信息按照大类的不同,又将数据存在不同的大类表中,如大类为09的poi存储在CMS_PRODUCT_BASE_09表中。现在需要总表和各个分表中的数据要求保持一致。已经有一个触发器,功能是当像总表中插入一条数据时,自动的将该条信息保存到其对应的分表中。需要完成两个触发器:1 当总表中删除一条数据时,相应分表中也要删除该条数据。2 当总表中修改一条数据时,相应分表中的数据也要修改。完成的程序是这样的。修改表内容:create or replace trigger tri_cms_product_base_upd af. 阅读全文
摘要:
需求是这样的:程序每隔几个小时,从表中取100个数据,监测其正确性。 按照正常的写法,每次取出的结果都是一样的。 select * from base_part where rownum<10,因为oracle每次的执行计划都是一样的,数据扫描方法顺序都是一样的,所以返回的结果也都是一样的。 随机取数据的方法,一般网上有两种, 一是用随机数排序。这种方法能够取到正确的结果,但是属于数据量很大的情况,排序是非常耗时的。而我的表基本上都在百万以上,所以这种方法只能pass了。按照随机数排序实际上是把随机数当做一列,然后排序。对应的语句为: SELE... 阅读全文
摘要:
需求是这样的,产品表里面混进去了部分坏数据,这些数据的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 阅读全文