我使用sQLLDER(11g)將數據加載到表中。其中一列是一個BLOB,需要從另一個文件加載。該文件的名稱取決於表的一個字段,我需要連接完整路徑才能加載文件。因此,爲了獲得文件的完整路徑,我需要將文件夾路徑'/ oradata/val /'與ID_RECOMMENDATION字段以及擴展名'.dat'連接起來;例如,如果字段ID_RECOMMENDATION是'1',則文件名應該是'/oradata/val/1.dat'。我不能修改原始文件,所以我想用一個表達式來獲得該文件的完整路徑,使用這樣的事情:SQLLDR:連接完整路徑和文件名的lobfile動態加載
LOAD DATA
INFILE *
INTO TABLE t_val_recommendation append
fields terminated by ';'
(
ID_RECOMMENDATION,
ID_PROFILE ,
START_DATE date 'yyyymmdd',
LOBF_00001 BOUNDFILLER"trim('/oradata/val/'||:ID_RECOMMENDATION||'.dat')",
PARAGRAPHS LOBFILE (LOBF_00001) TERMINATED BY EOF,
ASSET_ALLOCATION
)
但它似乎並不理解路徑的級聯和文件名。我怎樣才能做到這一點?
感謝
(編輯澄清的意思)
這是表模式:
ID_RECOMMENDATION NUMBER(10) NOT NULL,
ID_PROFILE VARCHAR2(10 BYTE) NOT NULL,
START_DATE DATE NOT NULL,
PARAGRAPHS SYS.XMLTYPE,
ASSET_ALLOCATION SYS.XMLTYPE
,這將是要加載的行:
1;CONSERVATIVE;20120301;<aa>This is my asset allocation</aa>
它看起來像你試圖跳過加載列「LOBF_00001」,但你想以後使用它,對吧? – 2012-02-29 15:35:11
不完全。我想加載文件夾/ oradata/val中的xml文件,名稱是記錄的IF_RECOMMENDATION字段。我希望能夠連接路徑和文件名,並將其加載到字段中。PARAGRAPHS – 2012-02-29 19:09:01
您可以在BEGINDATA行之後添加表格模式PLUS的CTL樣本行,以便我們知道數據映射的哪個字段到數據庫中的哪一列 – Benoit 2012-03-01 14:22:43