0

SQLローダーを使用してロードしたいファイルがあります。サンプルファイルは次のとおりです。

1|Deepak|1|raj|Kumar|mcapatna|powerhouse

制御ファイルは

LOAD DATA        
 INFILE *          
TRUNCATE 
INTO TABLE Student WHEN (1:1)= '1'
FIELDS TERMINATED BY '|' 
TRAILING NULLCOLS                           
(                 
    nickName1       position(6)  NULLIF  nickName1=BLANKS  ,
    nickName2       NULLIF  nickName2=BLANKS  ,
    class           CONSTANT '10',
    Address             CONSTANT 'NA'

)

私が欲しいのは出力ですnickName1=mcapatna nickName=powerhouse class=10 & Address=NAnickName1=pak&の値を取得していますnickName2= 1 。これは、単一文字のシーケンスに基づいてカウントしていることを意味します..

4

2 に答える 2

2

制御ファイルは、データ ファイルのフィールド順になっています。データ ファイル内の不要なフィールドをスキップするには、フィールドを FILLER として定義して「消費」する必要があります。

...
(
skip_1     FILLER,
skip_2     FILLER,
skip_3     FILLER,
skip_4     FILLER,
skip_5     FILLER,
nickname1,
nickname2,
class      CONSTANT '10',
Address    CONSTANT 'NA'
)

詳細については、かなり最近の投稿を参照してください: SQLLDR を使用して区切りデータをロード中にデータ フィールドをスキップする

于 2015-05-13T13:04:42.123 に答える