Nghe giống như một thư mục bên ngoài Oracle là hoàn hảo cho công việc. Hãy nhớ rằng cách tiếp cận này sẽ gặp nhiều khó khăn nếu đây là tệp văn bản mà người dùng có thể ghi vào. Người dùng sẽ làm hàng trăm điều mà bạn không bao giờ tin rằng có thể gây ra lỗi và hơn thế nữa .
Từ bài báo:
Tạo một thư mục
cấp quyền đọc, ghi trên thư mục data_dir cho your_user;
Tạo bảng bên ngoài
CREATE TABLE test_ext (
test_code VARCHAR2(5),
test_name VARCHAR2(50)
)
ORGANIZATION EXTERNAL (
TYPE ORACLE_LOADER
DEFAULT DIRECTORY ext_tab_data
ACCESS PARAMETERS (
RECORDS DELIMITED BY NEWLINE
FIELDS TERMINATED BY ','
MISSING FIELD VALUES ARE NULL
(
test_code CHAR(5),
test_name CHAR(50)
)
)
LOCATION ('test1.txt','test2.txt')
)
PARALLEL 5
REJECT LIMIT UNLIMITED;
và sau đó đọc từ bảng
SELECT *
FROM test_ext
ORDER BY test_name;
Chỉnh sửa:bạn vẫn có thể thực hiện việc này với các thư mục không nằm trên máy chủ cơ sở dữ liệu nhưng yêu cầu nhiều công việc hơn và điều này gây ra nhiều rủi ro hơn đối với bảo mật cơ sở dữ liệu và chất lượng dữ liệu. Bạn có định thêm một thư mục mới mỗi khi người dùng mới được thêm vào không?
Các bước cho phép Oracle truy cập tệp nằm trên một máy khác (giả sử là hệ điều hành Windows)
- tạo cửa sổ hoặc người dùng miền sẽ có quyền đọc tệp trên mọi thư mục mà bạn muốn truy cập
- trên máy chủ cơ sở dữ liệu, hãy chạy services.msc và thay đổi người dùng mà dịch vụ cơ sở dữ liệu Oracle chạy sang người dùng miền mới của bạn. Thêm người dùng này vào nhóm cục bộ có tên ORA_DBA trên máy chủ cơ sở dữ liệu
- khởi động lại cơ sở dữ liệu để các thay đổi có hiệu lực
- tạo một thư mục trong cơ sở dữ liệu bằng đường dẫn như // clientPc / sharedFolder
- cấp quyền đọc cho người dùng cơ sở dữ liệu của bạn
- trên máy khách cấp quyền đọc cho người dùng miền trên thư mục đó
- xác minh kết nối bằng cách sử dụng UTLFILE để đọc một tệp mẫu trên máy khách