Path SQLLDR:动态加载连接完整路径和文件名的lobfile
我使用sQLLDER(11g)将数据加载到表中。其中一列是BLOB,需要从另一个文件加载。文件名取决于表的字段,我需要连接完整路径才能加载文件。因此,为了获得文件的完整路径,我需要将文件夹路径“/oradata/val/”与字段ID_建议加上扩展名“.dat”连接起来;例如,如果字段ID_建议为“1”,则文件名应为“/oradata/val/1.dat”。我无法修改原始文件,因此我想使用表达式获取文件的完整路径,使用类似以下内容:Path SQLLDR:动态加载连接完整路径和文件名的lobfile,path,concatenation,sql-loader,Path,Concatenation,Sql Loader,我使用sQLLDER(11g)将数据加载到表中。其中一列是BLOB,需要从另一个文件加载。文件名取决于表的字段,我需要连接完整路径才能加载文件。因此,为了获得文件的完整路径,我需要将文件夹路径“/oradata/val/”与字段ID_建议加上扩展名“.dat”连接起来;例如,如果字段ID_建议为“1”,则文件名应为“/oradata/val/1.dat”。我无法修改原始文件,因此我想使用表达式获取文件的完整路径,使用类似以下内容: LOAD DATA INFILE * INTO TABLE t_
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>
1;保守的20120301;这是我的资产配置
我不确定修改正在加载的现有文件会有多困难,但是否可以修改这些文件,使其包含正确的文件路径?您可以使用Java或其他文本处理语言将该ID_建议与“/oradata/val/”和“.dat”连接起来并保存文件,然后使用
有许多语言易于学习和进行文本文件转换。Java、Perl和C是我想到的三种语言,但还有很多其他的
我想说,从长远来看,将文本文件设置为SQLLDR易于使用的格式是非常值得的
LOBF_00001 BOUNDFILLER"trim('/oradata/val/'||:ID_RECOMMENDATION||'.dat')"
我觉得这是个错误:
- 如果这是一个
,则表示在表BOUNDFILLER
中没有名为t\u val\u recommendation
的列,但ctl文件的数据部分中有数据,您希望使用它并将其存储到LOBF\u 00001
变量中,可用于计算其他表达式的LOBF\u 00001
- 如果这是一个
,则意味着表中有一列名为表达式
,但ctl文件的数据部分中没有数据LOBF_00001
LOBF_00001 BOUNDFILLER"trim('/oradata/val/'||:ID_RECOMMENDATION||'.dat')"