Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Pomijanie pól danych podczas ładowania rozdzielanych danych za pomocą SQLLDR

Określ kolumnę, którą chcesz pominąć, jako FILLER. Należy pamiętać, że kolejność kolumn w pliku kontrolnym jest zazwyczaj kolejnością w pliku danych. Jeśli nazwa pasuje do kolumny w tabeli, właśnie tam trafi.

...
(
  f1 CHAR,  -- 1st field in the file, goes to column named f1 in the table
  X FILLER, -- 2nd field in the file, ignored
  f3 CHAR,  -- 3rd field in the file, goes to column named f3 in the table
  f2 CHAR   -- 4th field in the file, goes to column named f2 in the table
)

Innymi słowy, kolejność kolumn w pliku kontrolnym odpowiada kolejności w pliku danych, a nie kolejności w tabeli. To odpowiada nazwie, a nie kolejności.

EDYCJA - dodałem kilka komentarzy w celu wyjaśnienia, ale uważam, że nie mogą one znajdować się w tej pozycji w rzeczywistym pliku. Zobacz poniżej pełny przykład:

Utwórz tabelę:

CREATE TABLE T1
(
  F1  VARCHAR2(50 BYTE),
  F2  VARCHAR2(50 BYTE),
  F3  VARCHAR2(50 BYTE)
);

Plik kontrolny, example.ctl:

load data 
infile *
truncate
into table t1
fields terminated by '|' trailing nullcols
(
f1 CHAR,
x FILLER,
f3 CHAR,
f2 CHAR
)
BEGINDATA
a|b|c|d
w|x|y|z

Uruchom to:

C:\temp>sqlldr userid=login/[email protected] control=example.ctl
SQL*Loader: Release 11.2.0.1.0 - Production on Wed Apr 22 11:25:49 2015
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
Commit point reached - logical record count 2

Wybierz z tabeli:

Mam nadzieję, że to pomoże.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Najszybszy sposób na sprawdzenie, czy jakieś rekordy w tabeli bazy danych?

  2. spraw, aby optymalizator używał wszystkich kolumn indeksu

  3. Jak przechodzić przez kolumny z PL/SQL?

  4. Oracle 11g PHP oci_connect nie działa OCIEnvNlsCreate()

  5. Przykład wyzwalacza Oracle przed wstawieniem lub aktualizacją