2012-02-01 21 views
5

Sorgunun altında bir SQL komut dosyası yazdım. Sorgu iyi çalışıyor.SQL * Loader kullanarak tablodaki bir sütunu güncelleyin?

update partner set is_seller_buyer=1 where id in (select id from partner 
where names in 
(
'A','B','C','D','E',... // around 100 names. 
)); 

Ama şimdi bunun yerine bir sorguda kendisinde yaklaşık 100 isim yazma, CSV dosyasından tüm adları getirmek istiyoruz. İnternette SQL * Loader hakkında okudum ama güncelleme sorgusunda fazla bir şey almadım. Benim csv dosyasında sadece isimler var.

enter image description here

Ben bunu başarabilirsiniz nasıl

load data 
    infile 'c:\data\mydata.csv' 
    into table partner set is_wholesaler_reseller=1 
    where id in (select id from partner 
    where names in 
    ( 
    'A','B','C','D','E',... // around 100 names. 
)); 
    fields terminated by "," optionally enclosed by '"'   
    (names, sal, deptno) 

denediniz mi? Şimdiden teşekkürler.

cevap

5

SQL * Yükleyici, güncelleştirmeleri gerçekleştirmiyor, yalnızca ekler.

load data 
    infile 'c:\data\mydata.csv' 
    into table names 
    fields terminated by "," optionally enclosed by '"'   
    (names, sal, deptno) 

Buna alternatif şudur:

update partner set is_seller_buyer=1 where id in (select id from partner 
where names in 
(
select names from names 
)); 

Kişisel yükleyici komut şekilde değiştirilebilir: Yani, ayrı bir tabloya isimlerini eklemek names söylemek ve bundan Güncellemenizi çalıştırmalısınız Oracle'ın masa gibi düz bir dosyayı işlemesine izin veren Dış Tablolar'ı kullanın. Başlamak için bir örnek here bulunabilir.

İlgili konular