自个的sqlloader

ctl文件

LOAD DATA
--CHARACTERSET American English
--
for my test
INFILE 'rr2.txt'
BADFILE 'rrbad.bad'
DISCARDFILE 'rrdisc.disc'


APPEND INTO TABLE EMS_ALL_EMPL_INFO
WHEN REC_ID <> ''
FIELDS TERMINATED BY '\t'
TRAILING NULLCOLS
(
NONCOLUMN FILLER,
REC_ID INTEGER EXTERNAL,
ASSOCIATE_ID "RAINBOW_TO_NUMBER(:ASSOCIATE_ID)",
ASSOCIATE_TYPE CHAR,
ASSOCIATE_NAME CHAR,
SUB_CNTR_AGC_NAME CHAR,
BGC_CLRC_DATE "RAINBOW_TO_DATE(:BGC_CLRC_DATE)",
AUG_SIGN_OFF_DATE "RAINBOW_TO_DATE(:AUG_SIGN_OFF_DATE)",
SIA_SIGN_OFF_DATE "RAINBOW_TO_DATE(:SIA_SIGN_OFF_DATE)",
PSC_ACC_CRT_DATE "RAINBOW_TO_DATE(:PSC_ACC_CRT_DATE)",
NETWK_ID_CRT_DATE "RAINBOW_TO_DATE(:NETWK_ID_CRT_DATE)",
SUB_CNTR_GE_APPR_DATE "RAINBOW_TO_DATE(:SUB_CNTR_GE_APPR_DATE)",
RES_ON_BDING_DATE "RAINBOW_TO_DATE(:RES_ON_BDING_DATE)",
SUPER_BUSINESS CHAR,
BUSINESS CHAR,
SUB_BUSINESS CHAR,
E_MEASURE_ID CHAR,
PROJECT_NAME CHAR,
TM_FP CHAR,
GE_SSO_ID CHAR,
SSO_ID_CRT_DATE "RAINBOW_TO_DATE(:SSO_ID_CRT_DATE)",
BUS_SPS_SSO_ID "RAINBOW_TO_NUMBER(:BUS_SPS_SSO_ID)",
PROENGGMT_ON_BDING_DATE "RAINBOW_TO_DATE(:PROENGGMT_ON_BDING_DATE)",
RES_CRT_STATUS CHAR,
APP_SEC_TRAINED CHAR,
APP_SEC_TRAINING_DATE "RAINBOW_TO_DATE(:APP_SEC_TRAINING_DATE)",
APP_SEC_ATMPT_DATE "RAINBOW_TO_DATE(:APP_SEC_ATMPT_DATE)",
APP_SEC_CLRC_DATE "RAINBOW_TO_DATE(:APP_SEC_CLRC_DATE)",
BLB_NON_BLB CHAR,
LOCATION_TYPE CHAR,
WK_COUNTRY CHAR,
WK_SITE_NAME CHAR,
CO_EMPL_TRAINING_DATE "RAINBOW_TO_DATE(:CO_EMPL_TRAINING_DATE)",
VISA_TYPE CHAR,
VISA_EXPIRY_DATE "RAINBOW_TO_DATE(:VISA_EXPIRY_DATE)",
CONTACT_NUM CHAR,
E_MAIL_ID CHAR,
RES_STATUS CHAR,
RESGINED_ABSCOND CHAR,
OFF_BDING_DATE "RAINBOW_TO_DATE(:OFF_BDING_DATE)",
OFF_BDING_TYPE CHAR,
AOR_SIGN_OFF_DATE "RAINBOW_TO_DATE(:AOR_SIGN_OFF_DATE)",
CRT_DATE SYSDATE
)

bat

set nls_lang=AMERICAN
echo nls_lang
cd d:\rr
sqlldr USERID=lostyue/feiyue@orcl control=lyonrr.ctl log=lyonlog.log

用到的function

CREATE OR REPLACE FUNCTION RAINBOW_TO_DATE(parm VARCHAR2) RETURN date IS
vtempdate DATE;
BEGIN
vtempdate := TO_DATE(NVL(parm, 'RAINBOW'), 'DD-Mon-YYYY');
RETURN vtempdate;
EXCEPTION
WHEN OTHERS THEN
RETURN null;
END;
CREATE OR REPLACE FUNCTION RAINBOW_TO_NUMBER(parm VARCHAR2) RETURN NUMBER IS
VTEMPSSO NUMBER;
BEGIN
VTEMPSSO := TO_NUMBER(NVL(parm, '0'));
RETURN VTEMPSSO;
EXCEPTION
WHEN OTHERS THEN
RETURN 0;
END;





你可能感兴趣的:(loader)