これは SQL Developer では可能ではないと思います (しかし、あまり頻繁には使用しません)。
私が使用している SQL クライアント - SQL Workbench/J - はこれを行うことができます。
このデータをエクスポートするには、いくつかの方法があります。
独自のスクリプトを生成する
次のような、特別な (ツール固有の) 表記法を使用して外部ファイルを参照する SQL スクリプトを作成できます。
INSERT INTO images
(name, data)
VALUES
('foobar', {$blobfile='blob_r1_c2.data'});
上記のステートメントは、再度 SQL Workbench でのみ実行できます。他の SQL クライアントとは互換性がありません。
utl_raw を使用
もう 1 つの方法は「blob リテラル」を使用することですが、文字リテラルの 4000 バイトに対する Oracle の制限により、これは非常に小さな blob 値に対してのみ機能します。
INSERT INTO images
(name, data)
VALUES
('foobar', to_blob(utl_raw.cast_to_raw('......')));
呼び出しの文字リテラルにcast_to_raw
は、BLOB の 16 進値が含まれます。これには「blob バイト」ごとに 2 文字が必要なため、2000 バイトを超える BLOB を処理することはできません。ただし、その構文は、ほぼすべての Oracle SQL ツールで機能します (非常に長い行を含むスクリプトを処理できる場合)。
SQL*ローダー入力ファイル
3 番目の方法は、SQL*Loader を使用してインポートできるテキスト ファイルにデータをエクスポートすることです。
テキスト ファイルには次のような内容が含まれます。
名前データ
foobar blob_r1_c2.data
次のSQL*Loader制御ファイルとともに:
オプション (スキップ = 1)
LOAD DATA CHARACTERSET 'WE8ISO8859P15'
INFILE 'images.txt'
追記
INTO TABLE 画像
'\t' 末尾の NULLCOLS で終了するフィールド
(
名前、
lob_file_data FILLER、
データ LOBFILE(lob_file_data) が EOF で終了しました
)
これは SQL*Loader を使用してロードできるため、データをインポートするために SQL Workbench は必要ありません。
詳細はマニュアルに記載されています
編集
Alex がコメントで指摘しているように、DataPump エクスポートを使用することもできますが、それにはサーバー上のファイル システムにアクセスできる必要があります。上記のソリューションはすべてクライアントにデータを保存します。