Hej Jan!
Når du bruger SQLloaderen til at "hælde" data ind i en Oracle database, skal
du bruge to filer.
(1) En deffinitionsfil, som fortæller hvilke felter din Oracle database
tabel indeholder.
(2) En data fil (kommasepareret fil) med de poster, som du vil loade ind i
Oracle tabellen.
En post i datafilen består af alle felter fra Oracle tabellen. De enkelte
felter er adskilt af komma.
Hvis du har et felt uden indhold, skal værdien af dette felt være værdien
for et tomsfelt. Hver felttype har en værdi for "ingen indhold".
Værdien for et tomt datofelt er ofte "01.01.1901 00:00 00".
Værdien for et tomt alfanumerisk felt er ASCII 2 tegnet.
Med andre ord: Alle felter i en post skal have en værdi, når du bruger
SQLloaderen.
SQLloaderen "hælder" jo bare dataene ind i tabellerne unden nogen form for
validering. Derfor kan den indlæse med meget stor hastighed. Det højeste jeg
har været oppe på er 6200 poster/sec fra en ASCII kommafil.
Mvh
Allan
"Jan Eliasen" <eliasen@cs.auc.dk> skrev i en meddelelse
news:Pine.GSO.4.33.0112041934380.24318-100000@borg.cs.auc.dk...
> Hejsa
>
> Jeg skal til at bruge sqlload til oracle 8.0.5 under solaris til at loade
> store datamængder ind i databasen. Hvis nu vi forestiller os at jeg har en
> datafil der ser sådan ud;
> felt1,felt2,felt3,felt4,....,feltn
>
> og alle felterne har varierende længde - felt 1 kan altså variere i længde
> fra 1-5 og så videre. Så går jeg ud fra, at det ville være smart at bruge
> sådan en FIELDS TERMINATED BY "," dims. Skide smart.. men hvad nu, når det
> ikke er alle felterne i datafilen ejg vil have ind. Hvad nu hvis jeg gerne
> vil springe felt2 og felt4 over? Hvad gør jeg så?
>
> --
> Eliasen Jr.
>
|