Ik denk niet dat dit mogelijk is met SQL Developer (maar dan gebruik ik het niet vaak).
De SQL-client die ik gebruik - SQL Workbench/J - kan dit.
Er zijn verschillende manieren om deze gegevens te exporteren.
Genereer een eigen script
Het kan een SQL-script maken dat een speciale (toolspecifieke) notatie gebruikt om naar een extern bestand te verwijzen, zoiets als:
INSERT INTO images
(name, data)
VALUES
('foobar', {$blobfile='blob_r1_c2.data'});
De bovenstaande instructie kan alleen opnieuw worden uitgevoerd met SQL Workbench. Het is niet compatibel met andere SQL-clients.
Gebruik utl_raw
Een ander alternatief is om een "blob literal" te gebruiken, maar vanwege Oracle's limiet van 4000 bytes voor een letterlijke karakter, werkt dit alleen voor echt kleine blob-waarden:
INSERT INTO images
(name, data)
VALUES
('foobar', to_blob(utl_raw.cast_to_raw('......')));
waar het letterlijke teken voor de cast_to_raw
aanroep zou de hexadecimale waarden van de BLOB bevatten. Omdat dit 2 tekens per "blob-byte" vereist, kun je daarmee geen BLOB's groter dan 2000 bytes aan. Maar die syntaxis zou werken voor bijna alle Oracle SQL-tools (als ze scripts met erg lange regels aankunnen).
SQL*Loader invoerbestand
Het derde alternatief is om de gegevens te exporteren naar een tekstbestand dat kan worden geïmporteerd met SQL*Loader:
Het tekstbestand zou zoiets als dit bevatten:
NAAM DATAfoobar blob_r1_c2.data
Samen met het volgende SQL*Loader-besturingsbestand:
OPTIES (skip=1)LOAD DATA CHARACTERSET 'WE8ISO8859P15'INFILE 'images.txt'APPENDINTO TABLE IMAGESFIELDS BEINDIGD DOOR '\t' TRAILING NULLCOLS( NAME, lob_file_data FILLER, DATA LOBFILE(lob_fileD_data)>Dit kan worden geladen met SQL*Loader en heeft dus geen SQL Workbench nodig om de gegevens te importeren.
Meer details staan in de handleiding
Bewerken
Zoals Alex in zijn opmerking heeft opgemerkt, kun je ook een DataPump-export gebruiken - maar daarvoor moet je toegang hebben tot het bestandssysteem op de server. De bovenstaande oplossingen slaan allemaal de gegevens op de client op.