Oracle 如何在sql加载器文件中执行添加功能

Oracle 如何在sql加载器文件中执行添加功能,oracle,sql-loader,Oracle,Sql Loader,我有一个固定长度的数据文件a.dat,其中包含以下数据 123454455002200011000330006600000 我的重点是具体的职位 位置(1:4) 位置(5:8) 我想在这两个位置添加值,并将其插入XYZ_表中名为Qty的字段中 我正在尝试在我的CTL文件中添加以下内容。但它失败了,我不知道如何进一步追求它 LOAD DATA INFILE '$SOME_DATA/a.dat' APPEND PRESERVE BLANKS INTO TABLE XYZ_Table (QTY

我有一个固定长度的数据文件a.dat,其中包含以下数据

123454455002200011000330006600000

我的重点是具体的职位

位置(1:4)
位置(5:8)

我想在这两个位置添加值,并将其插入XYZ_表中名为Qty的字段中

我正在尝试在我的CTL文件中添加以下内容。但它失败了,我不知道如何进一步追求它

LOAD DATA
 INFILE '$SOME_DATA/a.dat'
 APPEND
 PRESERVE BLANKS
 INTO TABLE XYZ_Table
(QTY   POSITION(1:4)+POSITION(5:8)  "to_number(:QTY)")
我只需要在SQL加载器中实现此添加功能

如果上述方法不可行,如果您能用不同的方法帮助我,那就太好了


注:我试图实现的只是更大的CTL文件的一部分。

您需要确定要添加在一起但不作为“BOUNDFILLER”加载到其自己的列中的位置,这意味着不加载它们,而是记住它们以供以后在表达式中使用。然后像这样使用:

LOAD DATA
infile test.dat 
append
preserve blanks
INTO TABLE X_test
TRAILING NULLCOLS
(val_1  BOUNDFILLER position(1:4)
,val_2  BOUNDFILLER position(5:8)
,qty    ":val_1 + :val_2"
)

为什么[mysql]和[oracle]都有这个问题的标签?嗨,鲍勃,我是这个论坛的新手,花时间学习正确的标签。。