Вы находитесь на странице: 1из 4

CREATE OR REPLACE FUNCTION NON_BLANK(VAR1 VARCHAR2) RETURN NUMBER IS BEGIN IF LENGTH(trim(VAR1)) IS NULL THEN RETURN 0; ELSE RETURN 1; END

IF; END; ================================ CREATE OR REPLACE FUNCTION IsInteger(a VARCHAR2) RETURN NUMBER AS c Integer; not_integer exception; pragma exception_init(not_integer,-06502); BEGIN c := to_number(a); if c=a then RETURN 1; else return 0; end if; EXCEPTION WHEN not_integer THEN RETURN 0; END; / =================================== create or replace function DATE_CHECKING(var1 VARCHAR2) return number is VAR2 DATE; begin VAR2:=TO_DATE(VAR1,'MM-DD-YYYY'); if(var2<=sysdate) and (to_number(to_char(var2,'yyyy'))> to_number(to_char(sysdat e,'yyyy'))-10) then return 1; else return 0; end if; EXCEPTION WHEN OTHERS THEN RETURN 0; end; / ================================== CREATE OR REPLACE FUNCTION DATE_VALID(DT VARCHAR2) RETURN NUMBER IS VAR1 DATE; BEGIN VAR1:=TO_DATE(DT,'MM-DD-YYYY'); RETURN 1; EXCEPTION WHEN OTHERS THEN RETURN 0; END; / ================================== CREATE OR REPLACE FUNCTION ISAMOUNT(NUM VARCHAR2)

RETURN NUMBER IS VAR2 NUMBER; BEGIN VAR2:=LENGTH(TRIM(TRANSLATE(UPPER(NUM),('0123456789'),''))); IF VAR2 IS NULL THEN RETURN 1; ELSE RETURN 0; END IF; END; / ================================== CREATE OR REPLACE PROCEDURE CLAIM_TRAN_PROC IS CURSOR C1 IS SELECT * FROM G01_STG_UPD_CLM_TRNS; BEGIN FOR MREC IN C1 LOOP IF ( (ISINTEGER(MREC.CLAIMANT_NUMBER)=1 AND NON_BLANK(MREC.CLAIMANT_NUMBER)=1) AND (DATE_CHECKING(MREC.CLAIM_REPORT_DATE)=1 AND TO_DATE(MREC.CLAIM_REPORT_DATE,'MMDD-YYYY') > TO_DATE(MREC.LOSS_DATE,'MM-DD-YYYY')) AND (ISINTEGER(MREC.CLAIM_NUMBER)=1 AND NON_BLANK(MREC.CLAIM_NUMBER)=1) AND (ISINTEGER(MREC.POLICY_NUMBER)=1 AND NON_BLANK(MREC.POLICY_NUMBER)=1) AND (DATE_CHECKING(MREC.LOSS_DATE)=1) AND (DATE_CHECKING(MREC.INSPECTION_REPORT_DATE)=1 AND TO_DATE(MREC.INSPECTION_REPORT _DATE,'MM-DD-YYYY') > TO_DATE(MREC.LOSS_DATE,'MM-DD-YYYY') AND TO_DATE(MREC.INSP ECTION_REPORT_DATE,'MM-DD-YYYY') > TO_DATE(MREC.CLAIM_REPORT_DATE,'MM-DD-YYYY')) AND (MREC.CLAIM_STATUS IN('CLS', 'DEN', 'PEN', 'INF')) AND (MREC.ACTUAL_REPAIR_AMT<>0) AND (MREC.DAMAGE_ESTIMATE_AMT<>0) AND (DATE_CHECKING(MREC.CLAIM_CLOSED_DATE)=1 AND TO_DATE(MREC.CLAIM_CLOSED_DATE,'MMDD-YYYY') > TO_DATE(MREC.LOSS_DATE,'MM-DD-YYYY')) AND (MREC.RESERVE_AMT<>0) AND (MREC.DEPRECIATION_AMT<>0) AND (DATE_VALID(MREC.TRANS_DATE)=1) AND (ISAMOUNT(MREC.ACTUAL_REPAIR_AMT)=1) AND (ISAMOUNT(MREC.CLAIM_PROC_FEE_AMT)=1) AND (ISAMOUNT(MREC.CLAIM_SETTLEMENT_AMT)=1) AND (ISAMOUNT(MREC.ALAE)=1) AND (ISAMOUNT(MREC.SALVAGE)=1) AND (ISAMOUNT(MREC.SUBROGATION)=1) AND (ISAMOUNT(MREC.OUTSTANDING_LOSS)=1) AND (ISAMOUNT(MREC.DAMAGE_ESTIMATE_AMT)=1) AND (ISAMOUNT(MREC.RESERVE_AMT)=1) AND (ISAMOUNT(MREC.DEPRECIATION_AMT)=1) AND (ISAMOUNT(MREC.DEDUCTABLE_VALUE)=1) AND (ISAMOUNT(MREC.INCURRED_LOSS)=1) ) THEN INSERT INTO G01S2CLAIMTRANSACTION( CLAIMANT_NUMBER, CLAIM_REPORT_DATE, CLAIM_NUMBER, POLICY_NUMBER, LOSS_DATE, INSPECTION_REPORT_DATE,

CLAIM_STATUS, ACTUAL_REPAIR_AMT, CLAIM_PROC_FEE_AMT, CLAIM_SETTLEMENT_AMT, ALAE, SALVAGE, SUBROGATION, OUTSTANDING_LOSS, TRANS_DATE, DAMAGE_ESTIMATE_AMT, CLAIM_CLOSED_DATE, RESERVE_AMT, DEPRECIATION_AMT, DEDUCTABLE_VALUE, INCURRED_LOSS) VALUES (TO_NUMBER(MREC.CLAIMANT_NUMBER), TO_DATE(MREC.CLAIM_REPORT_DATE,'MM-DD-YYYY'), TO_NUMBER(MREC.CLAIM_NUMBER), TO_NUMBER(MREC.POLICY_NUMBER), TO_DATE(MREC.LOSS_DATE,'MM-DD-YYYY'), TO_DATE(MREC.INSPECTION_REPORT_DATE,'MM-DD-YYYY'), MREC.CLAIM_STATUS, TO_NUMBER(MREC.ACTUAL_REPAIR_AMT), TO_NUMBER(MREC.CLAIM_PROC_FEE_AMT), TO_NUMBER(MREC.CLAIM_SETTLEMENT_AMT), TO_NUMBER(MREC.ALAE), TO_NUMBER(MREC.SALVAGE), TO_NUMBER(MREC.SUBROGATION), TO_NUMBER(MREC.OUTSTANDING_LOSS), TO_DATE(MREC.TRANS_DATE,'MM-DD-YYYY'), TO_NUMBER(MREC.DAMAGE_ESTIMATE_AMT), TO_DATE(MREC.CLAIM_CLOSED_DATE,'MM-DD-YYYY'), TO_NUMBER(MREC.RESERVE_AMT), TO_NUMBER(MREC.DEPRECIATION_AMT), TO_NUMBER(MREC.DEDUCTABLE_VALUE), TO_NUMBER(MREC.INCURRED_LOSS) ); ELSE INSERT INTO G01S2ERRCLAIMTRANSACTION( CLAIMANT_NUMBER, CLAIM_REPORT_DATE, CLAIM_NUMBER, POLICY_NUMBER, LOSS_DATE, INSPECTION_REPORT_DATE, CLAIM_STATUS, ACTUAL_REPAIR_AMT, CLAIM_PROC_FEE_AMT, CLAIM_SETTLEMENT_AMT, ALAE, SALVAGE, SUBROGATION, OUTSTANDING_LOSS, TRANS_DATE, DAMAGE_ESTIMATE_AMT, CLAIM_CLOSED_DATE, RESERVE_AMT,

DEPRECIATION_AMT, DEDUCTABLE_VALUE, INCURRED_LOSS) VALUES (MREC.CLAIMANT_NUMBER, MREC.CLAIM_REPORT_DATE, MREC.CLAIM_NUMBER, MREC.POLICY_NUMBER, MREC.LOSS_DATE, MREC.INSPECTION_REPORT_DATE, MREC.CLAIM_STATUS, MREC.ACTUAL_REPAIR_AMT, MREC.CLAIM_PROC_FEE_AMT, MREC.CLAIM_SETTLEMENT_AMT, MREC.ALAE, MREC.SALVAGE, MREC.SUBROGATION, MREC.OUTSTANDING_LOSS, MREC.TRANS_DATE, MREC.DAMAGE_ESTIMATE_AMT, MREC.CLAIM_CLOSED_DATE, MREC.RESERVE_AMT, MREC.DEPRECIATION_AMT, MREC.DEDUCTABLE_VALUE, MREC.INCURRED_LOSS); END IF; END LOOP; END;

Вам также может понравиться