1. 程式人生 > >imp/exp 匯出匯入含有CLOB,BLOB大欄位的表出現問題解決辦法

imp/exp 匯出匯入含有CLOB,BLOB大欄位的表出現問題解決辦法

如果你的表空間裡有多個大欄位的表,那麼建議你最好使用Oracle最新的資料泵技術expep/impep,這個技術能很好的支援大資料欄位(clob/blob)。

   那麼如果你習慣使用imp/exp這種比較古老但是你順手的技術呢。這時依如下步驟即可解決。

   之後我們就要對單獨的頑固分子進行操作了。

   imp "'/ as sysdba'" indexes=y  file=/exp_swserp.dmp fromuser=swserp touser=swserpreal log=/oracle_recovers/mylog.log tables=Trpreportdatasource
   

   其中tables指向的就是你的大欄位的表。如果有多個用,分割即可。 這個時候你如果之前是按我那種方式做很有可能報這個錯誤:

   IMP-00003: oracle error 1536 encountered
   ORA-01536: space quota exceeded for tablespace 'SWSERP'

    take it easy! 把新使用者在原表空間的quota設大。懶人做法: alter user new quota unlimited on old.

   再重來一次: imp "'/ as sysdba'" indexes=y  file=/exp_swserp.dmp fromuser=swserp touser=swserpreal log=/oracle_recovers/mylog.log tables=Trpreportdatasource

  Import terminated successfully without warnings.

   解決!
   PS:

        看了這篇文章的讀友們,原諒我當初的無知吧~ 如果有大欄位的表,預設是在原表空間記憶體儲的。這個時候你導過去,如果沒有和源表空間同名的表空間如上文的swserp,是會報錯:找不到swserp表空間的。如果有的話,它會把這些資料放在源表空間--swserp裡。而不是你新的表空間。這是由於大欄位資料的特性決定的--表空間依賴。怎麼辦呢?你可以用重組去彌補這一步的錯誤:參加另一篇文章:重組表空間http://blog.csdn.net/kai27ks/article/details/7527943

 即可解決問題。

        有人會問:有木有根本解決的方法啊親?有的,下面就來告訴你。其實下面的方式是很多年前就有人用了,我只不過多告訴了你為什麼而已。

        情況A:你有當初建立這個大欄位表和主鍵索引等的語句,那問題就簡單多了。

                       1.首先在新的表空間建立好表和主鍵索引等。

                        2.使用imp 加上imp userName/[email protected]:1521/orcl log=E:\impLog.2log(日誌輸出檔案) file=e:\XXX.dump(之前那份資料庫匯出檔案即可) touser=newUserName fromuser=oldUserName indexes=n ignore=y
備註:indexes=n 表示不匯入索引 ignore=y 表示忽略報錯(表已存在)

                        3.檢查--資料應該已經過去了

        情況B: 沒有建表語句或者已經丟了---這其實很正常

                       1. imp 使用indexfile引數  imp userName/[email protected]:1521/orcl file=e:\XXX.dump(之前那份資料庫匯出檔案即可) indexfile=e:\XX.sql tables=tableName(包含clob/blob大欄位的表表名)

                            備註: 這一步實際上沒有匯入資料,而是將那個表的建表和索引語句匯出到xxx.sql中

                       2. 使用那些語句建表和索引,注意先後順序 先表,再索引。

                       3.  其餘部分同情況A.2

                       4. 當然 你也可以使用其他工具匯出建表和索引語句,原理一樣的。

來源:http://blog.csdn.net/kai27ks/article/details/7410699

相關推薦

imp/exp 匯出匯入含有CLOB,BLOB出現問題解決辦法

如果你的表空間裡有多個大欄位的表,那麼建議你最好使用Oracle最新的資料泵技術expep/impep,這個技術能很好的支援大資料欄位(clob/blob)。    那麼如果你習慣使用imp/exp這種比較古老但是你順手的技術呢。這時依如下步驟即可解決。    之後

exp匯出imp匯入含有clobblob資料

公司測試環境的測試資料庫部分表資料需要匯入到正式環境中,因為庫表中含有Clob和Blob欄位,所以無法用SQL插入的匯出方式。所以就用exp方式匯出。 使用PLSQL連線測試庫,使用PLSQL   工具>匯出表>Oracle匯出 進行資料的匯出 遠端連

oracle 匯入/匯出含有clob/blob......

折騰了半天總算弄好了。。。 匯出 :  遇到的坑: 1.plsql dmp匯出 選了可執行的exe檔案 指定了匯出的檔名字 點匯出後一閃而過  這個是因為沒有在系統環境變數裡配置oracle_home,(F:\oracle\app\yd\product\11.2.0\dbh

ORACLE 還有BLOBCLOB等型別匯出匯入

當ORACLE資料庫匯出的時候,發現有些表有BLOB和CLOB型別欄位的時候,利用一般的匯出方法是無法匯出的會報錯,其原因是sql無法生成這兩種型別欄位,這個時候,最好用的方法就是plsql自帶的匯出方式pde檔案的匯出,這個的匯出後在匯入的時候注意如果是第一次

MYSQL利用Navicat對含有Bold進行匯入匯出

MYSQL中含有Blob欄位是一件挺麻煩的事情,匯出匯入不方便。我介紹我是怎麼做的。 1、在MYSQL的my.ini最後中新增一行配置max_allowed_packet = 100M,重啟MYSQL服務 根據實際情況來定這個數值的大小,我這次表裡面有82個mediumb

Spring 資料庫處理Clob/Blob物件

概述 使用Spring的時候需求上難免說需要儲存一下幾種型別: 文字 圖片 二進位制 處理物件 Spring 支援通過LobCreator/LobHandler進行處理大物件 B

Oracle varchar2改成型別clob

做專案中經常碰到資料庫改欄位問題,給自己做個記錄,下次直接可以拿來用了。Oracle 有些欄位直接修改會報錯ORA-22858: invalid alteration of datatype。不允許修改。不允許修改怎麼辦呢。。總不能把表幹掉重新建欄位吧。這在生產肯定行不通。可以先建個新欄

讓天下沒有難用的資料庫 » innodb使用text,blob的一些優化建議

最近看到一些老應用,在表結構的設計上使用了text或者blob的欄位;其中一個應用,對blob欄位的依賴非常的嚴重,查詢和更新的頻率也是非常的高,單表的儲存空間已經達到了近100G,這個時候,應用其實已經被資料庫綁死了,任何應用或者查詢邏輯的變更幾乎成為不可能; 為了清楚大欄位對效能的影響,我們必須

Oracleclob)模糊查詢優化方法

對於內容很多的時候clob打欄位模糊查詢很慢,整理一個小方法: 1,在查詢的列上建索引         2,對於要查詢的clob欄位使用一下語句建立索引   CREATE INDEX idx_zs_info_note ON zs_info(note) INDEXTYPE

oracle varchar2改成型別clob,讀取內容

oracle varchar2(4000)改成大欄位型別clob,如果需要改成大欄位的varchar2列有內容,不能直接用 alter table med_generic modify option07 blob;直接用上面的會提示:ORA-22858: 資料型別的變更無效

ibatis 處理oracle clob方法

ibatis配置檔案 <resultMap id="wjgg_RESULT" class="java.util.HashMap"><result property="WJID" column="WJID" jdbcType="int" /><

Spring ,Hibernate clob處理

1、首先資料表中的clob型別對應java持久化類的String型別;而blob型別對應byte[]型別 2、定義hibernate標籤時,持久化類中對應clob型別的屬性的hibernate type為                   org.springframew

Orcale擷取查詢,查詢CLOBxml 某節點的值

開發中用到不少CLOB欄位 ,今天要查詢匯出資料,需擷取CLOB大欄位某節點的資料,找到了如下方法: select xmltype(colName).extract('//nodeName/tex

oracle儲存過程將clob分開存入到新

create or replace PROCEDURE AUTHORIZESAVE AS v_ID varchar2(1000); v_MANDATESCOPE clob; a

oracle 11g使用exp導出空問題解決辦法

user err 數據庫 問題解決 默認 ble set lte def ORACLE 11G中有個新特性,當表無數據時,不分配segment,以節省空間。 alter system set deferred_segment_creation=false; 該參數值默認是

分治法 解決和問題

分治法求解最大欄位和問題 1 問題描述   給定由n個整數(可能由負數)組成的序列(a1, a2,...,an),最大欄位和問題求 該序列中連續子段和的最大值,並找出這個連續子段。 2 使用python程式設計解決,具體程式碼如下   # 求出最大子段和, 以及最大子段和 對應的位置

和 動態規劃

最大子段和 給定由n個整數(可能有負整數)組成的序列(a1,a2,…,an),最大子段和問題要求該序列形如 的最大值(1<=i<=j<=n),當序列中所有整數均為負整數時,其最大子段和為0。 #include<stdio.h> #include<

Azure .net WebAPP的js/css檔案過導致訪問慢的解決辦法

https://docs.azure.cn/zh-cn/articles/azure-operations-guide/app-service-web/aog-app-service-web-qa-js-or-css-file-too-large-cause-slower-access  &nbs

演算法 | 最

         #include <stdio.h> int a[100001],dp[100001]; int main() { int T,n; while(~scanf("%d",&n)) {

pandas讀取檔案時memoryerror的解決辦法

再用pd.read_csv讀取大檔案時,如果檔案太大,會出現memoryerror的問題。   解決辦法一:pd.read_csv的引數中有一個chunksize引數,為其賦值後,返回一個可迭代物件TextFileReader,對其遍歷即可 reader = pd.read_csv(file_