我有Amount Column的文件。但是列中的某些行包含字符。我想在一个表中加载正确的金额列,在另一个表中加载不正确的金额列。
我使用以下格式将正确数量的列提取到表1中。
to_number(:amt/100)
进入表2我没有指定任何格式,我直接将其称为CHAR。
但是这两个表都是使用正确的金额值生成的。 (表1和表2都使用格式to_number(:amt/100)
INTO TABLE Tbl1
WHEN (01) <> 'TRAILER'
TRAILING NULLCOLS
(
amt POSITION(1:12) char(12)
)
INTO TABLE tbl2
WHEN (01) <> 'TRAILER'
TRAILING NULLCOLS
(
amt POSITION(1:12) "to_number(:amt/100)",
)
答案 0 :(得分:0)
您必须根据金额值条件区分表格。因此,您的WHEN
条件应该与WHEN (01) <> 'TRAILER' AND (1:12) = 'SOME_CONDITION'
相似。
在您的情况下,我不知道是否有一种方法可以根据其格式调整列值,例如REGEXP_LIKE,IS_NUMERIC,用于SQL * Loader。你应该寻找这些类型的解决方法。
答案 1 :(得分:0)
您可能最好加载到一个临时表中,其中列是varchar2,因此所有行都将加载,然后使用PL / SQL程序从那里进行处理。
如果您向我们展示了该列中的实际数据,也许还有一种方法可以解决这个问题。