2014-04-02 45 views
4

我使用Oracle 11g中,我想我的數據(僅適用於數據,而不是表創建腳本等)出口 自己的數據庫,以便它可以通過客戶導入甲骨文,BLOB數據中丟失了我的導出文件

當我使用Oracle Sql開發人員的導出數據庫時,它只導出數據,但我的BLOB已丟失!在我想要導出的表格中有很多圖像文件。

我想知道如果我確實需要使用oracle exp imp工具;

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

任何想法?

回答

6

From the documentation

格式:選擇數據被卸載所需的輸出格式。根據所選的格式,可能會出現其他選項。例如,對於xls(Microsoft Excel文件),您可以爲數據和SELECT語句指定工作表名稱。

對於CLOB數據,僅當格式爲加載程序(SQL * Loader)或pdf(PDF)時才支持導出。某些導出類型僅導出字符串的子集,後跟省略號(...)。

它沒有明確指向BLOB,但是如果CLOB只能作爲加載器或PDF導出,那麼BLOB也會有這種限制是有道理的。如果你想在另一個模式或數據庫中重新創建這些數據,SQL * Loader格式似乎是一個不錯的選擇。

您認爲insert語句的外觀如何?你必須有一個包含二進制值的文本字面值,這本身就是一個問題,但你也會被限制在4k以內 - 許多圖像文件可能會超過這個值。對於CLOB,它可能會給你第一個4903個字符,後面跟着字符串文字中的省略號,但我不確定;對於BLOB,即使這樣也沒有任何意義。

如果你想在數據庫之間傳輸數據,你應該考慮data pump export/import,或者如果你(或你的客戶端)受服務器訪問限制,那麼你可以回退到legacy export/import。兩者都支持LOB。數據泵是優越的,如果可能的話應該優先使用。唯一的缺點是轉儲文件被寫入數據庫服務器並訪問它們(或directory對象寫入的權限可能在某些組織中有問題

+0

你覺得我需要這個工具嗎? ? http://docs.oracle.com/cd/B28359_01/server.111/b28319/exp_imp.htm#i1004777 – Spring

+0

@Spring - 你應該看看數據泵在舊的導出/導入工具上;我已經更新了我的答案。我似乎沒有正確地閱讀這個問題,因爲我認爲你只對SQL Developer選項感興趣。爲了將數據傳輸到客戶端,我肯定會使用適當的轉儲文件,而不是SQL Developer可以生成的任何文件。 –

+0

tnx,這是我所需要的:我將在本地機器和本地oracle數據庫上創建轉儲/導出,然後我希望能夠將結果(文件,文件夾)發送給客戶(銀行),他在自己的數據庫上運行它並獲取新的數據。那麼哪個工具在這裏更好? – Spring

0

任何LOB無法插入(出口/進口)直接作爲普通數據。 你必須寫一個地方/ SQL塊從數據庫獲取BLOB並把它寫上。 退房這個環節,這是你究竟如何做到這一點。

http://www.dba-oracle.com/t_writing_blob_clob_os_file.htm 乾杯隊友 V

+0

是的,你是對的。感謝您的糾正。每桌一列之前是8. – Veerender

+0

你認爲我需要這個工具嗎? http://docs.oracle.com/cd/B28359_01/server.111/b28319/exp_imp.htm#i1004777 – Spring