Tôi không nghĩ rằng điều này là khả thi với SQL Developer (nhưng sau đó tôi không sử dụng nó thường xuyên).
Máy khách SQL mà tôi đang sử dụng - SQL Workbench / J - có thể thực hiện việc này.
Có một số cách để xuất dữ liệu này.
Tạo tập lệnh độc quyền
Nó có thể tạo một tập lệnh SQL sử dụng ký hiệu đặc biệt (cụ thể cho công cụ) để tham chiếu đến một tệp bên ngoài, chẳng hạn như:
INSERT INTO images
(name, data)
VALUES
('foobar', {$blobfile='blob_r1_c2.data'});
Câu lệnh trên chỉ có thể được thực thi lại với SQL Workbench. Nó không tương thích với bất kỳ ứng dụng khách SQL nào khác.
Sử dụng utl_raw
Một giải pháp thay thế khác là sử dụng "blob Lite", nhưng do giới hạn của Oracle về 4000 byte cho một ký tự, điều này chỉ hoạt động đối với thực sự giá trị đốm màu nhỏ:
INSERT INTO images
(name, data)
VALUES
('foobar', to_blob(utl_raw.cast_to_raw('......')));
trong đó ký tự chữ cho cast_to_raw
lệnh gọi sẽ chứa các giá trị hex của BLOB. Vì điều này yêu cầu 2 ký tự cho mỗi "byte đốm màu", bạn không thể xử lý BLOB lớn hơn 2000 byte với điều đó. Nhưng cú pháp đó sẽ hoạt động đối với gần như tất cả các công cụ SQL của Oracle (nếu chúng có thể xử lý các tập lệnh có dòng rất dài).
Tệp đầu vào SQL * Loader
Giải pháp thay thế thứ ba là xuất dữ liệu thành tệp văn bản có thể được nhập bằng SQL * Loader:
Tệp văn bản sẽ chứa một cái gì đó như thế này:
TÊN DATAfoobar blob_r1_c2.data
Cùng với tệp điều khiển SQL * Loader sau:
TÙY CHỌN (bỏ qua =1) TẢI NHÂN VẬT DỮ LIỆU 'WE8ISO8859P15'INFILE' images.txt'APPENDINTO TABLE IMAGESFIELDS ĐƯỢC CHỨNG NHẬN BỞI '\ t' TRAILING NULLCOLS (TÊN, lob_file_data FILLER, DỮ LIỆU LOBFIEDLE (lob_ERM_data)>Điều này có thể được tải bằng SQL * Loader và do đó không cần SQL Workbench để nhập dữ liệu.
Thông tin chi tiết có trong sách hướng dẫn
Chỉnh sửa
Như Alex đã chỉ ra trong nhận xét của mình, bạn cũng có thể sử dụng xuất DataPump - nhưng điều đó yêu cầu bạn phải có quyền truy cập vào hệ thống tệp trên máy chủ. Các giải pháp trên đều lưu trữ dữ liệu trên máy khách.