0

我在 csv/文本文件中有一个名为“FLOATVALUE”的字段。我从第三方收到此文件,其值可能低于

  1. 空值
  2. {}
  3. 任何数字

当我插入这个值如下

.... [其他实地检查]

isValid "nvl(:isValid, '')",

FLOATVALUE FLOAT EXTERNAL "nvl(:FLOATVALUE, NULL)"

.... [其他实地检查]

它检查 ":FLOATVALUES" 是否为空。如果是,则将 NULL 插入到 oracle 表中,如果不是,则无法插入值(“{}”)。

我正在加载到 oracle 表中的字段是“FLOATVALUE FLOAT”。我想在我的控制文件中有类似下面的内容 -

  1. if :FLOATVALUE is null insert NULL
    elseif :FLOATVALUE is '{}' insert NULL
    else inert original value

如何在控制文件中指定上述条件?

4

2 回答 2

1

您可以使用解码功能:

decode(:FLOATVALUE, '{}', NULL, :FLOATVALUE)

也就是说:如果 FLOATVALUE 是 '{}',则插入 NULL,否则插入 FLOATVALUE

于 2013-05-24T03:52:05.723 回答
0

您可以使用 decode 或 case when 语句。请参阅下面的示例

Decode :
decode(Float_value,{},NULL,Float_value);

Case when :
CASE  [ FLOAT_VALUE ]
WHEN NULL THEN NULL
WHEN {} THEN NULL
ELSE [FLOAT_VALUE]
END;
于 2013-05-24T04:09:50.353 回答