Saya tidak berpikir ini mungkin dengan SQL Developer (tapi kemudian saya tidak sering menggunakannya).
Klien SQL yang saya gunakan - SQL Workbench/J - dapat melakukan ini.
Ada beberapa cara untuk mengekspor data ini.
Buat skrip berpemilik
Itu dapat membuat skrip SQL yang menggunakan notasi khusus (khusus alat) untuk mereferensikan file eksternal, seperti:
INSERT INTO images
(name, data)
VALUES
('foobar', {$blobfile='blob_r1_c2.data'});
Pernyataan di atas hanya dapat dieksekusi dengan SQL Workbench lagi. Ini tidak kompatibel dengan klien SQL lainnya.
Gunakan utl_raw
Alternatif lain adalah menggunakan "blob literal", tetapi karena Oracle membatasi 4000 byte untuk literal karakter, ini hanya berfungsi untuk benar-benar nilai gumpalan kecil:
INSERT INTO images
(name, data)
VALUES
('foobar', to_blob(utl_raw.cast_to_raw('......')));
di mana literal karakter untuk cast_to_raw
panggilan akan berisi nilai hex dari BLOB. Karena ini membutuhkan 2 karakter per "gumpalan byte", Anda tidak dapat menangani Gumpalan yang lebih besar dari 2000 byte dengan itu. Tapi sintaks itu akan bekerja untuk hampir semua alat Oracle SQL (jika mereka dapat menangani skrip dengan garis yang sangat panjang).
File input SQL*Loader
Alternatif ketiga adalah mengekspor data ke dalam file teks yang dapat diimpor menggunakan SQL*Loader:
File teks akan berisi sesuatu seperti ini:
NAME DATAfoobar blob_r1_c2.data
Bersama dengan file kontrol SQL*Loader berikut:
OPTIONS (skip=1)LOAD DATA CHARACTERSET 'WE8ISO8859P15'INFILE 'images.txt'APPENDINTO TABLE IMAGESFIELDS DIHENTIKAN OLEH '\t' TRAILING NULLCOLS( NAME, lob_file_data FILLER, DATA LOBFILE) TERMINFATE_file EO(lob_file) EO_file(lob_file)>Ini dapat dimuat menggunakan SQL*Loader dan karenanya tidak memerlukan SQL Workbench untuk mengimpor data.
Detail lebih lanjut ada di manual
Sunting
Seperti yang ditunjukkan Alex dalam komentarnya, Anda juga dapat menggunakan ekspor DataPump - tetapi itu mengharuskan Anda memiliki akses ke sistem file di server. Semua solusi di atas menyimpan data di klien.