2016-03-24 18 views
0

Başlıkta belirtildiği gibi, bu durumu ele almak için bir kontrol dosyasına sahip olmak istiyorum. Senaryoyu farklı tabloya kaydetmem gerekiyor. Örneğin, WHEN (1: 3) HEA'dır, tablo başlığına eklenmelidir. NEDEN (1: 3) DTL, tablonun yerine geçmesi gerekir. Bunu yapmak mümkün mü?SQL Loader - Değiştir ve aynı kontrol dosyasına ekle

cevap

1

Bir dosyadaki verilerin, dosyadaki ilk alana bağlı olarak üç tabloya gittiği bir durumum var. WHEN yan tümcesi ilk alana bakar ve buna göre harekete geçer. Bir 'WHEN' yerine getirildiğinde, ilk alanın filler bildirilerek atlanması gerektiğine dikkat edin. Sorunuza cevap vermek için veya REPLACE'u INTO TABLE maddesinden sonra koyabilirsiniz. Bir deneyin ve bize bildirin.

OPTIONS (DIRECT=TRUE) 
UNRECOVERABLE 
LOAD DATA 
APPEND 
INTO TABLE TABLE_A 
WHEN (01) = 'CLM' 
FIELDS TERMINATED BY '|' TRAILING NULLCOLS 
(rec_skip  filler POSITION(1) 
,CLM_CLAIM_ID CHAR NULLIF(CLM_CLAIM_ID=BLANKS) 
... 
) 

INTO TABLE TABLE_B 
WHEN (01) = 'SLN' 
FIELDS TERMINATED BY '|' TRAILING NULLCOLS 
(rec_skip filler POSITION(1) 
,SL_CLAIM_ID CHAR NULLIF(SL_CLAIM_ID=BLANKS) 
... 
) 

INTO TABLE TABLE_C 
WHEN (01) = 'COB' 
FIELDS TERMINATED BY '|' TRAILING NULLCOLS 
(rec_skip filler POSITION(1) 
,COB_CLAIM  
... 
)  

diğer bilgiler: i vardı http://docs.oracle.com/cd/B28359_01/server.111/b28319/ldr_control_file.htm#i1005657

+0

zaten INTO TABLE DEĞİŞTİRİN çalıştığı bir ( bla bla ) TABLO B ( bla bla ) ama onun bu şekilde çalışmıyor INTO DEĞİŞTİRİN – Jack

+0

Bağlantıya göre, APPEND veya REPLACE, yukarıda belirttiğim gibi INTO TABLE deyiminden sonra olmalıdır. Lütfen bunu deneyin ve bize bildirin. –