我需要从CSV文件加载到Oracle表中。 我所面临的问题是, DESCRIPTION字段本身具有多行。
解决scheme我用它作为ENCLOSURE STRING "
(双引号)使用KSH调用sqlldr。
我遇到以下两个问题:
具有多行描述的行没有被加载,因为它本身终止,并且进一步的字段/列的值对于加载程序是不可见的。 错误:第二个机箱string不存在 (很明显"
没有find。”)
DESCRIPTION字段的第二行(以及其后面的行)本身被视为NEW Row,因此被填充。 这是垃圾数据。
控制文件:
OPTIONS(SKIP=1) LOAD DATA BADFILE '/home/fimsctl/datafiles/inbound/core_po/logs/core_po_data.bad' DISCARDFILE '/home/fimsctl/datafiles/inbound/core_po/logs/core_po_data.dsc' APPEND INTO TABLE FIMS_OWNER.FINANCE_PO_INBOUND_T FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' TRAILING NULLCOLS ( PO_NUM, CREATED_DATE "to_Date(:CREATED_DATE,'mm/dd/yyyy hh24:mi:ss')", PO_TYPE, PO_STATUS, NOTREQ1 FILLER, NOTREQ2 FILLER, PO_VALUE, LINE_ITEM_NUMBER, QUANTITY, LINE_ITEM_DESCRIPTION, RATE_VALUE, CURRENCY_CODE, UOM_ID, PO_REQUESTER_WWID, QUANTITY_ORDERED, QUANTITY_RECEIVED, QUANTITY_BILLED terminated by whitespace )
CSV文件数据:
COL1,8/4/2014 5:52,COL3,COL4,COL5,,,COL8,COL9,"Description Data",COL11,COL12,COL13,COL14,COL15,COL16,COL17 COL1,8/4/2014 8:07,COL3,COL4,COL5,,,COL8,COL9,,"GE MAKE 1X250 WATT HPSV NON INTEGRAL IP-65 **[NEWLINE HERE]** DIE-CAST ALUMINIUM FIXTURE COMPLETE SET **[NEWLINE HERE]** WITH SEPRATE CONTROL GEAR BOX WITH CHOKE, **[NEWLINE HERE]** IGNITOR, CAPACITOR & LAMP-T",COL11,COL12,COL13,COL14,COL15,COL16,COL17 COL1,8/4/2014 8:13,COL3,COL4,COL5,,,COL8,COL9,"Description Data",COL11,COL12,COL13,COL14,COL15,COL16,COL17