Oracle 如何使用sql加载器获取变量值并更新DB列

Oracle 如何使用sql加载器获取变量值并更新DB列,oracle,sql-loader,Oracle,Sql Loader,我有一个文本文件,第一行作为标题记录,其余的行是详细信息。对于处理,我不需要存储标题记录的字段,但我需要此标题记录中的日期字段,并将其作为详细信息记录的一部分存储在oracle记录行中。由于文件长度固定,我使用“位置”提取所有行的详细信息 是否可以在sql加载器控制文件中定义一个变量,将需要的值存储在内存中,然后在sql加载器控制文件执行sql插入时使用它 我的数据文件如下所示: 193049201209109009238 anjdjtk (Header Record) 1231232 1231

我有一个文本文件,第一行作为标题记录,其余的行是详细信息。对于处理,我不需要存储标题记录的字段,但我需要此标题记录中的日期字段,并将其作为详细信息记录的一部分存储在oracle记录行中。由于文件长度固定,我使用“位置”提取所有行的详细信息

是否可以在sql加载器控制文件中定义一个变量,将需要的值存储在内存中,然后在sql加载器控制文件执行sql插入时使用它

我的数据文件如下所示:

193049201209109009238 anjdjtk (Header Record)
1231232 1231386 bkadfjak 989039nnadfsafda(details)
1335635 1237657 lsafnre  234o9034590srgfs(details)
我需要从标题记录中提取position7:14,并在Oracle DB中使用此值更新a列


有人能帮我吗?

简言之,答案是否定的。不过我可以想出一些替代方案

编写PL/SQL程序,而不是使用SQL*加载器。读取每一行,保存标题中的日期,与详细记录一起插入

更改数据库设计,使标题表与详细信息表的长度相同,然后使用多个INTO table子句以及with子句,假设有某种方法将某行标识为要插入到相应表中的标题行,如果没有其他可使用的标识列,则使用序列值作为键进行连接

在任何环境中预处理文件,从标题行获取日期并将其添加到详细信息行之前,然后使用SQL*Loader将日期指定为控制文件中的第一列,然后跳过标题行的加载

将所有行加载到一个staging表中,并在加载后运行一个PL/SQL过程,该过程将从标题行获取日期,并使用它将其写入主表的details行,类似于第一个备选方案

让我们知道你的想法