6

Oracle 11g を使用しています。データをエクスポートしようとしています (テーブル作成スクリプトなどではなく、データのみ)。そのため、顧客がデータベースにインポートできます。

Oracle Sql 開発者のエクスポート データベースを使用すると、データのみがエクスポートされますが、BLOB が見つかりません。私のテーブルの 1 つにも、エクスポートしたい画像ファイルがたくさんあります。

本当に oracle exp imp ツールを使用する必要があるのだろうか。

http://docs.oracle.com/cd/B28359_01/server.111/b28319/exp_imp.htm#i1004777

何か案が?

4

2 に答える 2

6

ドキュメントから

Format : アンロードするデータの出力形式を選択します。選択した形式によっては、他のオプションが表示される場合があります。たとえば、xls (Microsoft Excel ファイル) の場合、データと SELECT ステートメントのワークシート名を指定できます。

CLOB データの場合、フォーマットがローダー (SQL*Loader) または pdf (PDF) の場合にのみ、エクスポートがサポートされます。一部のエクスポート タイプは、省略記号 (...) が後に続く文字列のサブセットのみをエクスポートします。

BLOB を明示的に参照していませんが、CLOB をローダーまたは pdf としてのみエクスポートできる場合、BLOB にもその制限があることは理にかなっています。このデータを別のスキーマまたはデータベースで再作成する場合は、SQL*Loader 形式が適しているようです。

insert声明はどのように見えると思いますか?バイナリ値を含むテキスト リテラルが必要ですが、これはそれ自体が問題ですが、多くの画像ファイルが超える可能性がある 4k にも制限されます。CLOB の場合、最初の 4903 文字の後に文字列リテラルの省略記号が続く場合がありますが、よくわかりません。BLOB の場合でも、意味がありません。

データベース間でデータを転送する場合は、data pump export/importを検討する必要があります。または、ユーザー (またはクライアント) がサーバー アクセスによって制限されている場合は、従来の export/importにフォールバックできます。どちらも LOB をサポートします。データ ポンプは優れているため、可能な限り優先して使用する必要があります。唯一の欠点は、ダンプ ファイルがデータベース サーバーに書き込まれ、それらにアクセスできることです (または、一部の組織ではdirectory、書き込み対象のオブジェクトに対するアクセス許可が問題になる可能性があります。

于 2014-04-02T09:57:07.310 に答える
0

LOB を通常のデータとして直接挿入 (エクスポート/インポート) することはできません。db から blob を取得して書き込むには、場所/SQL ブロックを作成する必要があります。このリンクを確認してください。これが正確な方法です。

http://www.dba-oracle.com/t_writing_blob_clob_os_file.htm 乾杯メイト V

于 2014-04-02T10:04:57.593 に答える