0

csv/text ファイルに「FLOATVALUE」というフィールドがあります。サードパーティからこのファイルを受け取りました。これには以下の値が含まれています

  1. ヌル
  2. {}
  3. いずれかの番号

この値を以下のように挿入すると

.... [その他のフィールドチェック]

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

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

.... [その他のフィールドチェック]

":FLOATVALUES" が null かどうかをチェックします。はいの場合は、Oracle テーブルに NULL を挿入しています。そうでない場合は、値 ("{}") の挿入に失敗しています。

Oracle テーブルにロードしているフィールドは「FLOATVALUE FLOAT」です。制御ファイルに以下のようなものを入れたい-

  1. if :FLOATVALUE is null 挿入 NULL
    elseif :FLOATVALUE is '{}' 挿入 NULL でなければ
    元の値を無効にする

制御ファイルで上記のような条件を指定するにはどうすればよいですか?

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 に答える