需要用exp和imp命令,具體用法如下:
創(chuàng)新互聯(lián)公司專業(yè)為企業(yè)提供濂溪網(wǎng)站建設(shè)、濂溪做網(wǎng)站、濂溪網(wǎng)站設(shè)計、濂溪網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、濂溪企業(yè)網(wǎng)站模板建站服務(wù),10多年濂溪做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
1. 獲取幫助
imp help=y
2. 導(dǎo)入一個完整數(shù)據(jù)庫
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 導(dǎo)入一個或一組指定用戶所屬的全部表、索引和其他對象
imp system/manager file=seapark log=seapark fromuser=seapark
imp system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 將一個用戶所屬的數(shù)據(jù)導(dǎo)入另一個用戶
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
5. 導(dǎo)入一個表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 從多個文件導(dǎo)入
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
7. 使用參數(shù)文件
imp system/manager parfile=bible_tables.par
bible_tables.par參數(shù)文件:
#Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
8. 增量導(dǎo)入
imp system./manager inctype= RECTORE FULL=Y FILE=A
-------------------------------------------------------------------------------------------------------------------------------------------
1. 獲取幫助
exp help=y
2. 導(dǎo)出一個完整數(shù)據(jù)庫
exp system/manager file=bible_db log=dible_db full=y
3. 導(dǎo)出數(shù)據(jù)庫定義而不導(dǎo)出數(shù)據(jù)
exp system/manager file=bible_db log=dible_db full=y rows=n
4. 導(dǎo)出一個或一組指定用戶所屬的全部表、索引和其他對象
exp system/manager file=seapark log=seapark owner=seapark
exp system/manager file=seapark log=seapark owner=(seapark,amy,amyc,harold)
注意:在導(dǎo)出用戶時,盡管已經(jīng)得到了這個用戶的所有對象,但是還是不能得到這些對象引用的任何同義詞。解決方法是用以下的SQL*Plus命令創(chuàng)建一個腳本文件,運(yùn)行這個腳本文件可以獲得一個重建seapark所屬對象的全部公共同義詞的可執(zhí)行腳本,然后在目標(biāo)數(shù)據(jù)庫上運(yùn)行該腳本就可重建同義詞了。
SET LINESIZE 132
SET PAGESIZE 0
SET TRIMSPOOL ON
SPOOL c:\seapark.syn
SELECT 'Create public synonym '||synonym_name
||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms
WHERE table_owner = 'SEAPARK' AND owner = 'PUBLIC';
SPOOL OFF
5. 導(dǎo)出一個或多個指定表
exp seapark/seapark file=tank log=tank tables=tank
exp system/manager file=tank log=tank tables=seapark.tank
exp system/manager file=tank log=tank tables=(seapark.tank,amy.artist)
6. 估計導(dǎo)出文件的大小
全部表總字節(jié)數(shù):
SELECT sum(bytes)
FROM dba_segments
WHERE segment_type = 'TABLE';
seapark用戶所屬表的總字節(jié)數(shù):
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE';
seapark用戶下的aquatic_animal表的字節(jié)數(shù):
SELECT sum(bytes)
FROM dba_segments
WHERE owner = 'SEAPARK'
AND segment_type = 'TABLE'
AND segment_name = 'AQUATIC_ANIMAL';
7. 導(dǎo)出表數(shù)據(jù)的子集(oracle8i以上)
NT系統(tǒng):
exp system/manager query='Where salad_type='FRUIT'' tables=amy.salad_type
file=fruit log=fruit
UNIX系統(tǒng):
exp system/manager query=\"Where salad_type=\'FRUIT\'\" tables=amy.salad_type
file=fruit log=fruit
8. 用多個文件分割一個導(dǎo)出文件
exp system/manager
file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G tables=hr.paycheck
9. 使用參數(shù)文件
exp system/manager parfile=bible_tables.par
bible_tables.par參數(shù)文件:
#Export the sample tables used for the Oracle8i Database Administrator's Bible.
file=bible_tables
log=bible_tables
tables=(
amy.artist
amy.books
seapark.checkup
seapark.items
)
10. 增量導(dǎo)出
“完全”增量導(dǎo)出(complete),即備份整個數(shù)據(jù)庫
exp system/manager inctype=complete file=990702.dmp
“增量型”增量導(dǎo)出(incremental),即備份上一次備份后改變的數(shù)據(jù)
exp system/manager inctype=incremental file=990702.dmp
“累計型”增量導(dǎo)出(cumulative),即備份上一次“完全”導(dǎo)出之后改變的數(shù)據(jù)
exp system/manager inctype=cumulative file=990702.dmp
批量插入數(shù)據(jù)腳本
1、第一種批量插入數(shù)據(jù)腳本,可以基本滿足要求。理解上較為簡單,所以這個最常用。
NEXTVAL和CURRVAL的區(qū)別:
1、如果 sequence.CURRVAL 和 sequence.NEXTVAL 都出現(xiàn)在一個 SQL 語句中,則序列只增加一次。在這種情況下,每個 sequence.CURRVAL 和 sequence.NEXTVAL 表達(dá)式都返回相同的值,不管在語句中sequence.CURRVAL 和 sequence.NEXTVAL 的順序。
執(zhí)行腳本結(jié)果如下:
3、兩個表,同時批量插入數(shù)據(jù)的腳本
3、
4、 涉及子表時,批量插入數(shù)據(jù)腳本,
5、 批量修改數(shù)據(jù) :
時間取數(shù)方式:
一、SYSTIMESTAMP(取當(dāng)前系統(tǒng)值)
二、SYSDATE(取當(dāng)前系統(tǒng)值,但只精確到時,分和秒都為0)
三、固定值為:TO_TIMESTAMP ('2019-2-12 15:24:45.703000', 'yyyy-mm-dd hh24:mi:ss.ff6')
把固定的字段改為變量:
方式一:’||i||’ 例:’{“no”:“111’||i||’”}’(此方式)
方式二:concat 例:concat(concat(’{“blNo”:111"’,i),’"}’)
最好的方法是批量修改,即每次修改5000條(一次修改不要超過一萬條,否則影響性能). 雖然在11g中,我們也可以選擇使用merge命令,但你的這種情況最好先修改一部分然后看看影響,畢竟在生產(chǎn)環(huán)境作這樣的操作風(fēng)險很大。如果是誤操作,最好還是請DBA來恢復(fù),雖然這樣做會被挨罵,但總比錯上加錯,最后連挨罵的機(jī)會都沒有要好得多。如果對這些修改真的有信心,而只是從性能考慮,那可以用下面的方法(pk_col 是表的主鍵
1、構(gòu)建臨時表進(jìn)行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進(jìn)行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強(qiáng)調(diào)的是id必須是主鍵
1、構(gòu)建臨時表進(jìn)行主鍵關(guān)聯(lián)更新
需求:T1表有千萬級別的數(shù)據(jù)量,需要更新這個表的字段a,b滿足2個條件的記錄。
做法:一般業(yè)務(wù)會將條件通過excel表格提供給開發(fā),那么開發(fā)首先需要將這個excel表格的內(nèi)容插入到臨時表T2中,考慮到a,b都不是主鍵,那么需要將a,b轉(zhuǎn)化成主鍵后再插入到T2表中,T2表中還可以保存更新前的數(shù)據(jù),方便做數(shù)據(jù)回滾,T2表中有數(shù)據(jù)后,就可以執(zhí)行下面腳本進(jìn)行更新操作:
ps:c,d是需要更新的操作,e,f是條件。必須強(qiáng)調(diào)的是id必須是主鍵
文章標(biāo)題:oracle如何批量 oracle如何批量執(zhí)行存儲過程
分享路徑:http://chinadenli.net/article32/hgoesc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、定制開發(fā)、營銷型網(wǎng)站建設(shè)、微信公眾號、網(wǎng)站導(dǎo)航、面包屑導(dǎo)航
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)