|
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622 。
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 sunmina 于 2010/6/14 10:57 编辑
各位高手,
本人现在遇到一个问题,当运行’bank statement loader‘ program时候, 出现了不可读的数据,而这些没有被load的数据都是以空格开头的,但是control 文件里有相关的处理,下面是我的control file, 当空格开头的时候,应当走下面红色的case,但结果却没走。
LOAD DATA
REPLACE
-- Record Type 20: Transaction Reference Number
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':20'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5:85) CHAR)
-- Record Type 21: Related Reference (Not Used)
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':21'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5:85) CHAR)
-- Record Type 25: Account Identification
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':25'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(10:85) CHAR)
-- Record Type 28: Statement Number
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':28'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5) CHAR
TERMINATED BY WHITESPACE "ltrim(:column1, ':')",
column2 TERMINATED BY WHITESPACE)
-- Record Type 60F, 60M: Opening Balance
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':60'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no,':')",
column1 POSITION(4:4) CHAR,
column2 POSITION(6:6) CHAR,
column3 POSITION(7:12) CHAR,
column4 POSITION(13:15) CHAR,
column5 TERMINATED BY WHITESPACE "replace(decode(:column2, 'D', '-'||:column5, :column5), ',', '.') ")
-- Record Type 61: Statement Line
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':61'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5:10) CHAR,
column35 TERMINATED BY WHITESPACE)
-- Record Type 61: Supplimentary Detail (set rec_id_no to 9)
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no <> ':'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:1) CHAR "decode(:rec_id_no, ':', '0', '9')",
column1 POSITION(1:80) CHAR)
-- Record Type 86: Information to Account Owner
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':86'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5:85) CHAR,
column25 POSITION(5:21) CHAR,
column26 POSITION(22:37) CHAR,
column27 TERMINATED BY WHITESPACE "decode(:column25, 'ADVICE CONFIRMS', :column26, :column25)")
-- Record Type 62F, 62M: Closing Balance
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':62'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(4:4) CHAR,
column2 POSITION(6:6) CHAR,
column3 POSITION(7:12) CHAR,
column4 POSITION(13:15) CHAR,
column5 TERMINATED BY WHITESPACE "replace(decode(:column2, 'D', '-'||:column5, :column5), ',', '.') ")
-- Record Type 64: Closing Available Balance (Not Used)
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':64'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5:85) CHAR)
-- Record Type 65: Forward Available Balance (Not Used)
INTO TABLE ce_stmt_int_tmp
WHEN rec_id_no = ':65'
TRAILING NULLCOLS
(rec_no RECNUM,
rec_id_no POSITION(1:3) CHAR
TERMINATED BY WHITESPACE "ltrim(:rec_id_no, ':')",
column1 POSITION(5:85) CHAR)
数据文件
:20:1004076302307847
:21:021000021
:25:000006302307847
:28C:10097/00001
:60F:C100407USD6960596,90
:61:1004070407CM177400,00NCHK1001//8880614273
:86:BAI=175
:61:1004070407CM818,37NTRFSWF OF 10/04/07//5841800097FR
:86:BAI=195;YOUR REF=SWF OF 10/04/07;REC FROM=00000000010962009 JPMOR
GAN CHASE BANK NA - LONDON 125 LONDON WALL LONDON UNITED KINGDOM
EC2Y -5AJ;SWIFT ID=CHASGB2L;B/O CUSTOMER=/0077033203 CHASE PAYMEN
TECH EUROPE LIMITED 4 NORTHEASTERN BLVD SALEM NEW IE;REMARK=/OCMT
/USD818,37/;REC GFP=04070833
:61:1004070407DD7253,89NCMZNONREF//0017670780XF
:86:BAI=575;REMARK=AUTOMATIC DOLLAR TRANSFER TO ACCOUNT 0000008164461
40 TRN: 0017670780XF
:62F:C100407USD7131561,38
:64:C100407USD6881219,38
:65:C100408USD7088499,38
:65:C100409USD7131561,38
:86:AVG MTDC6540454,39AVG PREV MTDC5758692,15AVG YTDC8304230,54NUMBER
OF CREDITS=2SUM OF CREDITS=178218,37NUMBER OF DEBITS=1SUM OF DEB
ITS=7253,89
-
上面红色的那条数据没有被load成功,它是以空格开头的,如果将空格去掉就可以成功LOAD.现在要修改control file来解决这个问题,请问各位大侠有什么好的建议?
|
|