Jag tror inte att detta är möjligt med SQL Developer (men då använder jag det inte så ofta).
SQL-klienten jag använder - SQL Workbench/J - kan göra detta.
Det finns flera sätt att exportera denna data.
Generera ett proprietärt skript
Det kan skapa ett SQL-skript som använder en speciell (verktygsspecifik) notation för att referera till en extern fil, något som:
INSERT INTO images
(name, data)
VALUES
('foobar', {$blobfile='blob_r1_c2.data'});
Ovanstående sats kan endast köras med SQL Workbench igen. Den är inte kompatibel med någon annan SQL-klient.
Använd utl_raw
Ett annat alternativ är att använda en "blob literal", men på grund av Oracles gräns på 4000 byte för en teckenliteral, fungerar detta bara för egentligen små blobvärden:
INSERT INTO images
(name, data)
VALUES
('foobar', to_blob(utl_raw.cast_to_raw('......')));
där tecknet är bokstavligt för cast_to_raw
anropet skulle innehålla hex-värdena för BLOB. Eftersom detta kräver 2 tecken per "blob byte", kan du inte hantera BLOBs större än 2000 byte med det. Men den syntaxen skulle fungera för nästan alla Oracle SQL-verktyg (om de kan hantera skript med mycket långa rader).
SQL*Loader-indatafil
Det tredje alternativet är att exportera data till en textfil som kan importeras med SQL*Loader:
Textfilen skulle innehålla något sånt här:
NAME DATAfoobar blob_r1_c2.data
Tillsammans med följande SQL*Loader-kontrollfil:
ALTERNATIV (hoppa över=1)LADDA DATATECKENSTÄLLNING 'WE8ISO8859P15'INFILE 'images.txt'BILAGA TILL TABELLBILDFÄLT AVSLUTADE AV '\t' TRAILING NULLCOLS( NAME, lob_file_data FILLER, Elob_file_data FILLER, Elob_file_of_data) elob_file_of_data()>Detta kan laddas med SQL*Loader och behöver därför inte SQL Workbench för att importera data.
Mer information finns i manualen
Redigera
Som Alex har påpekat i sin kommentar kan du även använda en DataPump-export – men det kräver att du har tillgång till filsystemet på servern. Ovanstående lösningar lagrar alla data på klienten.