[ _alokiN_ @ 23.09.2010. 15:52 ] @
Zdravo svima,

Imam pitanje vezano za sqlldr: kada ; delimited data file sadrzi vise polja nego sto postoji u tabeli, sva suvisna polja su ignorisana. Da li postoji mogucnost da se takve linije detektuju kao greske?

Ako bez opcije TRAILING COLUMNS NULL stavimo manje polja nego sto je ocekivano - dolazi do greske, ali ako stavimo vise polja nego sto je ocekivano - sve prolazi ok...

Primer:

CTRL:
Code:

LOAD DATA
APPEND
INTO TABLE SOCIETY_FLOW
FIELDS TERMINATED BY ';'
(
        ID,
        NAME,
        CREATED   DATE "YYYYMMDD"
)


DATA:
Code:

106;NAME;20090808;;;;;;;


Koju opciju sqlldr-a treba koristiti (ako uopste postoji) da bi ova linija otisla u BAD file?

Hvala unapred!

Nikola
[ djoka_l @ 24.09.2010. 08:45 ] @
Ne postoji opcija kojom ćeš dobiti to što hoćeš.
Dakle u BAD ide samo ono što nije uspešno parsirano - manje polja nego što se očekuje, ili problem u formatu nekog od polja.
Ne vidim da je i neki problem kada se naređaju prazna polja, kao u tvom primeru, na kraju sloga, ali ako ti je potrebno da detektuješ takve slučajeve, onda napravi neki svoj parser. U ovako jednostavnom slučaju, i awk program bi ovo otkrio.
[ _alokiN_ @ 24.09.2010. 10:28 ] @
Ok, hvala na odgovoru.

File koji parsujem je komplikovaniji od primera ;) a aplikacija ga mora odbaciti ukoliko postoji bilo koja nepravilnost u njemu, tako da ... awk power :)