Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Bỏ qua các trường dữ liệu trong khi tải dữ liệu được phân tách bằng SQLLDR

Xác định cột bạn muốn bỏ qua là ĐIỀN. Hãy nhớ thứ tự của các cột trong tệp điều khiển thường là thứ tự của chúng trong tệp dữ liệu. Nếu tên khớp với một cột trong bảng, đó sẽ là vị trí của nó.

...
(
  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
)

Nói cách khác, thứ tự của các cột trong tệp điều khiển khớp với thứ tự của chúng trong tệp dữ liệu, không phải thứ tự của chúng trong bảng. Điều đó được khớp theo tên, không phải thứ tự.

CHỈNH SỬA - Tôi đã thêm một số nhận xét để giải thích, nhưng tôi tin rằng chúng không thể ở vị trí đó trong tệp thực tế. Xem ví dụ đầy đủ dưới đây:

Tạo bảng:

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

Tệp điều khiển, 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

Chạy nó:

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

Chọn từ bảng:

Hy vọng rằng điều này sẽ hữu ích.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle db Tham gia so với FROM a, b, c

  2. Cố gắng lấy dữ liệu thực tế gây ra ngoại lệ

  3. Sử dụng oci_parse và oci_execute

  4. Các tác động về hiệu suất của Mệnh đề Oracle IN không có phép nối là gì?

  5. Tại sao một bộ định lượng không tham lam đôi khi không hoạt động trong Oracle regex?