SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 50210: The %TKMI_JOB_RO etl_end_service macro generates an "ORA-00001: unique constraint (DI_DM.RPP_PLAN_PROD_METRICS_PK) violated" error

DetailsHotfixAboutRate It

In SAS® Promotion Optimization, the %TKMI_JOB_RO etl_end_service macro might generate the following error in MerchIntelGridSvr.log file:

2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: upload_csv_orcl.sh command failed to upload rpp_plan_prod_metrics_100800.csv. 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: --- /apps/upload /logs/rpp_plan_prod_metrics_<plan_sk>.csv.log contents: --- 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: SQL*Loader: Release 11.2.0.1.0 - Production on Thu Jun 6 11:40:01 2013 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: Control File: /apps/upload/data/rpp_plan_prod_metrics/rpp_plan_prod_metrics_<plan_sk>.csv.ctl 2013-06-06 11:39:00,675 [pool-13-thread-8] DEBUG - STDOUT: Character Set UTF8 specified for all input. 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Data File: /apps/upload/data/rpp_plan_prod_metrics/rpp_plan_prod_metrics_<plan_sk>.csv.ctl 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Bad File: /apps/upload/logs/rpp_plan_prod_metrics_<plan_sk>.csv.bad 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Discard File: none specified 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: (Allow all discards) 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Number to load: ALL 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Number to skip: 0 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Errors allowed: 50 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Bind array: 64 rows, maximum of 256000 bytes 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Continuation: none specified 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Path used: Conventional 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Silent options: FEEDBACK 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Table DI_DM.RPP_PLAN_PROD_METRICS, loaded from every logical record. 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Insert option in effect for this table: APPEND 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,676 [pool-13-thread-8] DEBUG - STDOUT: Column Name Position Len Term Encl Datatype 2013-06-06 11:39:00,678 [pool-13-thread-8] DEBUG - STDOUT: ------------------------------ ---------- ----- ---- ---- --------------------- 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: PLAN_SK FIRST * , O(") CHARACTER 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: PROD_HIER_SK NEXT * , O(") CHARACTER 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: KPI_SK NEXT * , O(") CHARACTER 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: FCST_KPI_VALUE NEXT * , O(") CHARACTER 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: BASE_KPI_VALUE NEXT * , O(") CHARACTER 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: ACTUAL_KPI_VALUE NEXT * , O(") CHARACTER 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: Record 1: Rejected - Error on table DI_DM.RPP_PLAN_PROD_METRICS. 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: ORA-00001: unique constraint (DI_DM.RPP_PLAN_PROD_METRICS_PK) violated 2013-06-06 11:39:00,679 [pool-13-thread-8] DEBUG - STDOUT: ... 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Record 51: Rejected - Error on table DI_DM.RPP_PLAN_PROD_METRICS. 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: ORA-00001: unique constraint (DI_DM.RPP_PLAN_PROD_METRICS_PK) violated 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: MAXIMUM ERROR COUNT EXCEEDED - Above statistics reflect partial run. 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Table DI_DM.RPP_PLAN_PROD_METRICS: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 0 Rows successfully loaded. 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 51 Rows not loaded due to data errors. 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 0 Rows not loaded because all WHEN clauses were failed. 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 0 Rows not loaded because all fields were null. 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Space allocated for bind array: 99072 bytes(64 rows) 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Read buffer bytes: 1048576 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Total logical records skipped: 0 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Total logical records read: 64 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Total logical records rejected: 51 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Total logical records discarded: 0 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Run began on Thu Jun 06 11:40:01 2013 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Run ended on Thu Jun 06 11:40:02 2013 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: Elapsed time was: 00:00:00.35 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: CPU time was: 00:00:00.01 2013-06-06 11:39:00,684 [pool-13-thread-8] DEBUG - STDOUT: rc=2 2013-06-06 11:39:00,685 [pool-13-thread-8] DEBUG - RC: 0 2013-06-06 11:39:00,688 [pool-13-thread-8] ERROR - uploadFile2Table: failed to upload rpp_plan_prod_metrics_<plan_sk>.csv to table rpp_plan_prod_metrics java.lang.RuntimeException: error (RC=2) on host 'rdbms-nprod.sas.ca' while executing remote shell command 'export ORACLE_HOME=/apps/oracle/product/11.2.0/db_1/ export PATH=$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME:$LD_LIBRARY_PATH export NLS_DATE_LANGUAGE=american /apps/upload/script/upload_csv_orcl.sh /apps/upload DI_DM di_dm/****@<your_rdbms_server>:1521/orcl rpp_plan_prod_metrics rpp_plan_prod_metrics_<plan_sk>.csv $'OPTIONS (DIRECT=FALSE, PARALLEL=TRUE, SILENT=FEEDBACK, SKIP_INDEX_MAINTENANCE=FALSE) --UNRECOVERABLE LOAD DATA CHARACTERSET UTF8 INFILE ___INFILE___ BADFILE \'/apps/upload/logs/rpp_plan_prod_metrics_<plan_sk>.csv.bad\' APPEND INTO TABLE DI_DM.rpp_plan_prod_metrics fields terminated by "," optionally enclosed by \'"\' (PLAN_SK,PROD_HIER_SK,KPI_SK,FCST_KPI_VALUE,BASE_KPI_VALUE,ACTUAL_KPI_VALUE)' CLEANUP': at com.sas.solutions.di.tkmiserver.shell.RemoteShell.exec(RemoteShell.java:128) at com.sas.solutions.di.tkmiserver.dispatcher.RshDispatcher.run(RshDispatcher.java:34) at com.sas.solutions.di.tkmiserver.CommandHelper.runRshCmd(CommandHelper.java:848) at com.sas.solutions.di.tkmiserver.CommandHelper.runRshCmd(CommandHelper.java:836) at com.sas.solutions.di.tkmiserver.data.DataServiceImpl.uploadFile2TableOrcl(DataServiceImpl.java:2780) at com.sas.solutions.di.tkmiserver.data.DataServiceImpl.uploadFile2TableOrcl(DataServiceImpl.java:2714) at com.sas.solutions.di.tkmiserver.data.DataServiceImpl.access$2000(DataServiceImpl.java:98) at com.sas.solutions.di.tkmiserver.data.DataServiceImpl$UploadWorker.run(DataServiceImpl.java:1433) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source)

This issue effects plans that end on the CURRENT_DATE_SK value.

Contact SAS Technical Support for the workaround.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS Promotion OptimizationMicrosoft® Windows® for x645.2_M25.2_M39.3 TS1M29.3 TS1M2
Linux for x645.2_M25.2_M39.3 TS1M29.3 TS1M2
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.