我有一个SQL总数据库,还有一个ORACAL正确数据库和一个ORACAL错误数据库,由于sql总中的数据有一部分错误的数据(错误数据包括大于系统日期和含有NULL的数据),我需要把正确的和错误的数据分别倒入两个oracal库中,我用sql语句把sql总中正确的数据差出来了,我是设想判断一下sql语句如果是正确的true,插入正确库;不正确,就插入错误库,问题是怎么判断一条SQL语句是不是正确??小弟是新手,请各位高手告诉我一下,最好有代码 注:大于正确库中最大的日期 and 小于系统日期  or 等于系统日期 and 大于正确库里同日期中最大ID为正确数据;反之,凡是大于系统日期and数据中有NULL的,就是错误数据!
注:同日期中最大ID 可以理解为2010年12月12日甲乙丙三班倒吃苹果
00:00::00-08:00:00  甲班  吃了3个  ID为1、2、3  
08:00::00-16:00:00  乙班  吃了3个  ID为1、2、3
16:00::00-23:59:59  丙班  吃了3个  ID为1、2、3
也是说12日各有3个ID1、2、3,但是每个时间段的ID都是唯一的,有最大的“同日期中最大ID ”已经定义了
SqlConnection srcConn = null;
OracleConnection dstConn = null;
SqlCommand srcCmnd = null;
OracleCommand dstCmnd = null;
SqlDataReader srcDataReader = null;
OracleDataReader dstDataReader = null;
int AIdMax = 0;//同日期中最大ID 
DateTime MaxTime;//正确数据库中最大的日期

解决方案 »

  1.   

    你可以了解一下分布式事务管理,先向正确的ORC1插入,如果没有异常就直接提交到数据库(直接提交前也可以自已检查一下自定义的逻辑,决定是否提交或回滚事务),否则捕获异常回滚事务,并向错误的ORC2插入。
      

  2.   

    step1 正确库中最大的日期,正确库里同日期中最大IDselect * from 表 where 日期>最大日期 and 日期<GETDATE() and ID >最大ID
    if(dr.HasRows){
    while(dr.Read()){
        insert into [表1]....
    }
    }另外一种情况你稍微改一下where条件和insert的表就可以啦