数据步骤中的修改语句出错。 ORA-01403

时间:2014-06-10 10:00:07

标签: oracle sas

我使用以下事务表来更新主表。我观察到的是,当事务表很小时,更新顺利进行。当大小增加时,代码失败并出现ORA-01403错误。它对我没有任何意义,因为它似乎不合逻辑。任何帮助或方向都会很棒。

data temp(index=(comp=(card_number cell_package_sk)));
        set import_data;
        keep card_number cell_package_sk SMS_STATUS SMS_SENT_DT LastUpdate;
run;

data master (drop=new_status new_date1 new_date2);
        set temp(rename=(SMS_STATUS= new_status SMS_SENT_DT=new_date1 LastUpdate=new_date2) in=a) key=comp / unique;
        modify master;
        select (_iorc_);
                when (%sysrc(_sok)) do;
                        if a then do;
                                if upcase(new_status) = "DELRD" then SMS_STATUS = "DELIVERED";
                                ELSE if upcase(new_status) = "DND" then SMS_STATUS = "NDNC";
                                ELSE if upcase(new_status) = "NO-DLR" then SMS_STATUS = "UNKNOWN";
                                ELSE SMS_STATUS = "FAILED";
                                SMS_SENT_DT = new_date1;
                                SMS_DELIVERED_DT = new_date2;
                                replace;
                        end;
                        else do;
                                _error_ = 0;
                        end;
                end;
                otherwise do;
                        _ERROR_ = 0;
                end;
        end;
run;
  

错误:更新/删除失败。观察结果可能已经改变或   自阅读时删除。 ORACLE执行错误:          ORA-01403:未找到数据。

请注意,Master是oracle表,而temp是SAS数据集。主表有大约4500万条记录,交易有50万条。

0 个答案:

没有答案