2016-04-14 23 views
1

Düz bir dosya kaynağından, NULL değerlerini kabul etmeyen 4 sütuna sahip bir SQL tablosuna kayıtlar alıyorum. Ve yapmak istediğim, belirli 4 alan için bir NULL veya boş bir değer içeren kayıtları düz dosya hedefine yönlendirmektir. AşağıdaDüz Dosyadan NULL veya Boş Değerleri Yeniden Yönlendirin

tablo yapılandırmasını görebilirsiniz:

Table Structure

Ve burada ilk kaydındaki county_code blanked gelmiş benim düz dosya kaynağından bir örnek, ikinci kayıtta UCN, ve üçüncüde action_id.

enter image description here

şu anda, bu hataları yapılandırıldığı gibi ben nedeniyle kısıtlamalara paketimi çalıştırırsanız:

The column status returned was: "The value violated the integrity constraints for the column.". 

Benim soru ben bu satırları yönlendirmek nasıl? Şartlı bir bölünme yapmam gerektiğini düşünüyorum, fakat emin değilim ki, bunu nasıl yapılandıracağımı bilmiyorum. Benim girişimlerim şimdiye kadar boştu.

Herhangi bir öneriniz var mı?

cevap

1

Düz Dosya Kaynağınızdan sonra Türetilmiş Sütun Dönüşümü ekleyin. Orada, null olmayan sütunların boş olup olmadığını sınayacaksınız.

Hata ayıklama kolaylığı için, söz konusu bu sütunların her biri için bir bayrak eklerim.

null_timestamp (ISNULL(timestamp) || LEN(RTRIM(timestamp)) == 0) ? true : false

Böyle bir ekspresyon düz dosya sütun null veya kesilmiş uzunluğu sıfıra eşit olup olmadığını belirleyecektir.

Bayraklarınızı sınadıktan sonra, bir Koşullu Bölme ekleyeceksiniz. Koşullu bölünmüş yollar, bir boole ifadesine dayanır. Ben buna bir Bozuk Veri çıkışı eklemek ve biz YA olanların herhangi gerçek olamayacak kadar olsaydı birlikte değerler, daha sonra tüm ifade doğru olur ve satırlar halinde yüzden boolean Çünkü

null_timestamp || null_country_code || null_etc 

gibi bir ifade kullanmak istiyorsunuz kötü veri yoluna yönlendirildi.

+0

Teşekkür @billinkc - o çözüm metin olarak datetime sütunu atmak LEN işlevine küçük değişikliğinden sonra güzel çalıştı. – MISNole

0

Verileri önce geçici bir tabloya yükleyebilir, ardından masaya ekleyerek geçici tabloya karşı 2 ayrı sorgu kullanarak veya düz dosyaya yazabilir misiniz?

1

Ben sadece koşullu bölünmeyi eklemek ve buna göre Çıktı seçeceğini:

enter image description here

+0

Bu yaklaşımı beğeniyorum - ama datetime ve int koşullarını nasıl ifade edersiniz? Doğruyu değerlendirmek için bu ifadeyi göremiyorum. – MISNole

+0

Aşağıdaki gibi (sadece belirtilen türden bir sütun ile) basit bir tür döküm ile mümkün olmalıdır: LEN (REPLACENULL ((DT_WSTR, 100) [Türetilmiş Sütun 1], "")) == 0 – Tyron78

+0

Teşekkürler! Bu hile yaptı. – MISNole

İlgili konular