|
mdhingra01
Posting Yak Master
179 Posts |
Posted - 2007-04-19 : 10:24:02
|
| I have a stored proc I am calling from a DTS package. The package has the following command. exec mis_reportswhen I run the package it fails with the following error 'incorrect set value for Arithabort'.When I execute the sp from Query analyzer. I completed without error. I can't understand why?The code in the sp is as follows:ALTER PROCEDURE [DBO].[MIS_REPORTS] ASSET ARITHABORT ONSET ANSI_NULLS OFFTRUNCATE TABLE PRF_SUMMARYEXEC PRF_SUMMARY_SPDELETE FROM PRF_SUMMARYWHERE ALT_FILE_CLTR_CD LIKE 'N%'UPDATE ASET A.PROOF_TOTAL=B.SCOREFROM PIRS A JOIN PRF_SUMMARY B ON A.SOURCE_SYS_CD=B.SOURCE_SYS_CD AND A.UNIT_COLL=B.ALT_FILE_CLTR_CD AND A.FILE_YEAR=B.FILE_YEAR AND A.FILE_OCC_NUM=B.FILE_OCCURENCE_NOWHERE A.SOURCE_SYS_CD=B.SOURCE_SYS_CD AND A.UNIT_COLL=B.ALT_FILE_CLTR_CD AND A.FILE_YEAR=B.FILE_YEAR AND A.FILE_OCC_NUM=B.FILE_OCCURENCE_NO--REPORTSTRUNCATE TABLE PRF_TARGET_RPTINSERT PRF_TARGET_RPT SELECT * FROM PRF_TARGET_VW ORDER BY 1TRUNCATE TABLE PROOF80DINSERT PROOF80D SELECT * FROM PROOF80D_VWTRUNCATE TABLE PROOFFDINSERT PROOFFD SELECT * FROM PROOFFD_VWTRUNCATE TABLE PRUNITINSERT PRUNIT SELECT * FROM PRUNIT_VW/*THIS WAS REPLACED WITH PRF_TARGET_RPT TRUNCATE TABLE PROOFALLINSERT PROOFALL SELECT * FROM PROOFALL_VW*/GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GOThe code contained in prf_summary_sp is as follows:ALTER PROCEDURE [DBO].[PRF_SUMMARY_SP] AS/***************************************************************************** STEP 1: GET THE LATEST INSTANCE OF EACH PROOFED FILE FROM THE PROOF SYSTEM ******************************************************************************/SET ARITHABORT ONSET ANSI_NULLS OFFINSERT DBO.PRF_SUMMARYSELECT B.SCORE_DT, NULL, B.SOURCE_SYS_CD, B.CLTR_CD, B.FILE_YEAR, B.FILE_OCCURENCE_NO, NULL, NULL, B.ALT_FILE_CLTR_CD,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL FROM DBO.PRF_OPERATIONAL_FILE B INNER JOIN ( SELECT MAX(A.SCORE_DT) AS SCORE_DT, A.SOURCE_SYS_CD,A.CLTR_CD,A.FILE_YEAR,A.FILE_OCCURENCE_NO FROM DBO.PRF_OPERATIONAL_FILE A GROUP BY A.SOURCE_SYS_CD,A.CLTR_CD,A.FILE_YEAR,A.FILE_OCCURENCE_NO ) C ON B.SCORE_DT = C.SCORE_DT AND B.SOURCE_SYS_CD = C.SOURCE_SYS_CD AND B.CLTR_CD = C.CLTR_CD AND B.FILE_YEAR = C.FILE_YEAR AND B.FILE_OCCURENCE_NO = C.FILE_OCCURENCE_NO/***************************************************************************** STEP 2: GET THE PROGRAM AND VERSION FOR THE LATEST INSTANCE OF EACH PROOFED FILE. ******************************************************************************/UPDATE DBO.PRF_SUMMARYSET PROGRAM_CD = B.PROGRAM_CD, PROOF_VERSION = B.QUES_VERFROM DBO.PRF_SUMMARY ALEFT OUTER JOIN ( SELECT MAX(PR.QUES_VER) AS QUES_VER, MAX(PR.PROGRAM_CD) AS PROGRAM_CD, PR.SCORE_DT,PR.SOURCE_SYS_CD,PR.CLTR_CD,PR.FILE_YEAR,PR.FILE_OCCURENCE_NO,Question_id, Answer_cd FROM DBO.PRF_RESULT PR GROUP BY PR.SCORE_DT,PR.SOURCE_SYS_CD,PR.CLTR_CD,PR.FILE_YEAR,PR.FILE_OCCURENCE_NO,Question_id, Answer_cd ) B ON A.SCORE_DT = B.SCORE_DT AND A.SOURCE_SYS_CD = B.SOURCE_SYS_CD AND A.CLTR_CD = B.CLTR_CD AND A.FILE_YEAR = B.FILE_YEAR AND A.FILE_OCCURENCE_NO = B.FILE_OCCURENCE_NO/***************************************************************************** STEP 3: GET THE SCORE FOR THE LATEST INSTANCE OF EACH PROOFED FILE. ******************************************************************************/-- FOR HISTORICAL DATAUPDATE DBO.PRF_SUMMARYSET SCORE = B.ANSWER_CDFROM DBO.PRF_SUMMARY ALEFT OUTER JOIN ( SELECT ANSWER_CD,PR.SCORE_DT,PR.SOURCE_SYS_CD,PR.CLTR_CD,PR.FILE_YEAR,PR.FILE_OCCURENCE_NO FROM DBO.PRF_RESULT PR WHERE QUESTION_ID = 1000 ) B ON A.SCORE_DT = B.SCORE_DT AND A.SOURCE_SYS_CD = B.SOURCE_SYS_CD AND A.CLTR_CD = B.CLTR_CD AND A.FILE_YEAR = B.FILE_YEAR AND A.FILE_OCCURENCE_NO = B.FILE_OCCURENCE_NOWHERE PROOF_VERSION = 0--FOR CURRENT DATAUPDATE DBO.PRF_SUMMARYSET SCORE = B.SCOREFROM DBO.PRF_SUMMARY ALEFT OUTER JOIN ( SELECT SUM(PA.SCORE) AS SCORE, PR.SCORE_DT,PR.SOURCE_SYS_CD,PR.CLTR_CD,PR.FILE_YEAR,PR.FILE_OCCURENCE_NO FROM DBO.PRF_RESULT PR INNER JOIN PRF_ANSWER PA ON PA.QUES_VER = PR.QUES_VER AND PA.QUESTION_ID = PR.QUESTION_ID AND PA.ANSWER_CD = PR.ANSWER_CD AND PA.PROGRAM_CD = PR.PROGRAM_CD GROUP BY PR.SCORE_DT,PR.SOURCE_SYS_CD,PR.CLTR_CD,PR.FILE_YEAR,PR.FILE_OCCURENCE_NO ) B ON A.SCORE_DT = B.SCORE_DT AND A.SOURCE_SYS_CD = B.SOURCE_SYS_CD AND A.CLTR_CD = B.CLTR_CD AND A.FILE_YEAR = B.FILE_YEAR AND A.FILE_OCCURENCE_NO = B.FILE_OCCURENCE_NOWHERE PROOF_VERSION > 0/***************************************************************************** STEP 3.5: DELETE FROM PRF_SUMMARY FILES THAT SHOULD NOT BE PROOFED AND HAD BEEN ******************************************************************************/--CREATE #PRF_NOT_TO_PROOFSELECT SOURCE_SYS_CD,DET_COLL,FILE_YEAR,FILE_OCC_NUM, P.UNIT_COLL INTO #PRF_NOT_TO_PROOFFROM dbo.pirs PWHERE NOT EXISTS( SELECT * FROM( SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_PIRS_OSR_FILE_CD UNION ALL SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_PROS_FILE_CD UNION ALL SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_BC_PRIME_FILE_CD UNION ALL SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_HALIFAX_FILE_CD ) TEMP WHERE TEMP.SOURCE_SYS_CD = P.SOURCE_SYS_CD AND TEMP.CLTR_CD = P.DET_COLL AND TEMP.FILE_YEAR = P.FILE_YEAR AND TEMP.FILE_OCCURENCE_NO = P.FILE_OCC_NUM AND TEMP.ALT_FILE_CLTR_CD=P.UNIT_COLL)--DELETE FROM PRF_SUMMARY WHERE EXISTS IN PRF_NOT_TO_PROOFDELETE FROM prf_summaryWHERE EXISTS(SELECT * FROM #PRF_NOT_TO_PROOF BWHERE prf_summary.SOURCE_SYS_CD=b.Source_Sys_CD and prf_summary.CLTR_CD=b.det_coll and prf_summary.FILE_YEAR=b.file_year and prf_summary.FILE_OCCURENCE_NO=b.file_occ_num and prf_summary.ALT_FILE_CLTR_CD=b.unit_coll)/***************************************************************************** STEP 4: ADD FILES THAT SHOULD BE PROOFED, BUT HAVEN'T BEEN. ******************************************************************************/INSERT DBO.PRF_SUMMARYSELECT *,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL FROM ( SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_PIRS_OSR_FILE_CD UNION ALL SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_PROS_FILE_CD UNION ALL SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_BC_PRIME_FILE_CD UNION ALL SELECT NULL AS SCORE_DT, PROGRAM_CD, SOURCE_SYS_CD, CLTR_CD, FILE_YEAR, FILE_OCCURENCE_NO, NULL AS PROOF_VERSION, 0 AS SCORE, ALT_FILE_CLTR_CD FROM PRF_HALIFAX_FILE_CD) TEMP WHERE NOT EXISTS (SELECT * FROM PRF_SUMMARY P WHERE TEMP.SOURCE_SYS_CD = P.SOURCE_SYS_CD AND TEMP.CLTR_CD = P.CLTR_CD AND TEMP.FILE_YEAR = P.FILE_YEAR AND TEMP.FILE_OCCURENCE_NO = P.FILE_OCCURENCE_NO)/***************************************************************************** STEP 5: GET THE TOTAL HOURS WORKED ON FOR ALL FILES IN PRF_SUMMARY.******************************************************************************/UPDATE DBO.PRF_SUMMARYSET HOURS = ISNULL(B.HOURS,0)FROM DBO.PRF_SUMMARY ALEFT OUTER JOIN ( SELECT ISNULL(SUM(HOURS),0) AS HOURS,K.SOURCE_SYS_CD,K.file_owner,K.FILE_YEAR,K.FILE_OCC_NUM FROM DBO.KING K GROUP BY K.SOURCE_SYS_CD,K.file_owner,K.FILE_YEAR,K.FILE_OCC_NUM )B ON A.SOURCE_SYS_CD = B.SOURCE_SYS_CD AND A.alt_file_cltr_cd = B.file_owner AND A.FILE_YEAR = B.FILE_YEAR AND A.FILE_OCCURENCE_NO = B.FILE_OCC_NUM GOSET QUOTED_IDENTIFIER OFF GOSET ANSI_NULLS ON GO |
|