如何插入數(shù)據(jù)oracle 如何導(dǎo)入數(shù)據(jù)

oracle怎樣導(dǎo)入數(shù)據(jù)庫(kù)

我給你一些數(shù)據(jù)庫(kù)常用的導(dǎo)入導(dǎo)出命令吧:\x0d\x0a該命令在“開(kāi)始菜單運(yùn)行CMD”中執(zhí)行\(zhòng)x0d\x0a一、數(shù)據(jù)導(dǎo)出(exp.exe)\x0d\x0a1、將數(shù)據(jù)庫(kù)orcl完全導(dǎo)出,用戶名system,密碼accp,導(dǎo)出到d:\daochu.dmp文件中\(zhòng)x0d\x0aexp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、將數(shù)據(jù)庫(kù)orcl中scott用戶的對(duì)象導(dǎo)出\x0d\x0aexp scott/accp@orcl file=d:\daochu.dmp owner=(scott)\x0d\x0a\x0d\x0a3、將數(shù)據(jù)庫(kù)orcl中的scott用戶的表emp、dept導(dǎo)出\x0d\x0aexp scott/accp@orcl file= d:\daochu.dmp tables=(emp,dept)\x0d\x0a\x0d\x0a4、將數(shù)據(jù)庫(kù)orcl中的表空間testSpace導(dǎo)出\x0d\x0aexp system/accp@orcl file=d:\daochu.dmp tablespaces=(testSpace)\x0d\x0a\x0d\x0a二、數(shù)據(jù)導(dǎo)入(imp.exe)\x0d\x0a1、將d:\daochu.dmp 中的數(shù)據(jù)導(dǎo)入 orcl數(shù)據(jù)庫(kù)中。\x0d\x0aimp system/accp@orcl file=d:\daochu.dmp full=y\x0d\x0a\x0d\x0a2、如果導(dǎo)入時(shí),數(shù)據(jù)表已經(jīng)存在,將報(bào)錯(cuò),對(duì)該表不會(huì)進(jìn)行導(dǎo)入;加上ignore=y即可,表示忽略現(xiàn)有表,在現(xiàn)有表上追加記錄。\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp full=y ignore=y\x0d\x0a\x0d\x0a3、將d:\daochu.dmp中的表emp導(dǎo)入\x0d\x0aimp scott/accp@orcl file=d:\daochu.dmp tables=(emp)

創(chuàng)新互聯(lián)公司專注于凌海企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,購(gòu)物商城網(wǎng)站建設(shè)。凌海網(wǎng)站建設(shè)公司,為凌海等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務(wù)

在oracle中怎么將查詢到的數(shù)據(jù)插入到另一個(gè)表中

1、首先,一個(gè)學(xué)生數(shù)據(jù)表,在這里需要修改數(shù)據(jù)表中StudentName數(shù)據(jù)表中的個(gè)人數(shù)據(jù),如下圖所示,然后進(jìn)入下一步。

  ?

2、其次,完成上述步驟后,打開(kāi)數(shù)據(jù)庫(kù)查詢語(yǔ)句,輸入查詢語(yǔ)句,然后首先查詢數(shù)據(jù)表中的數(shù)據(jù)內(nèi)容,如下圖所示,然后進(jìn)入下一步。

  ?

3、接著,完成上述步驟后,輸入查詢語(yǔ)句:Select

* fromStudent,輸入后,選擇所有內(nèi)容,然后選擇執(zhí)行按鈕以執(zhí)行SQL語(yǔ)句,如下圖所示,然后進(jìn)入下一步。

  ?

4、然后,完成上述步驟后,在Student表的第4行(Studentname中的“崔”)中,需要將其更改為“亮亮”,如下圖所示,然后進(jìn)入下一步。

  ?

5、隨后,完成上述步驟后,右鍵單擊電子表格,然后選擇“編輯前200行”選項(xiàng),如下圖所示,然后進(jìn)入下一步。

  ?

6、接著,完成上述步驟后,選擇內(nèi)部?jī)?nèi)容并將其更改為“

亮亮”,如下圖所示,然后進(jìn)入下一步。

  ?

7、然后,完成上述步驟后,選擇右鍵單擊內(nèi)容,然后選擇內(nèi)部執(zhí)行選項(xiàng),如下圖所示,然后進(jìn)入下一步。

  ?

8、最后,完成上述步驟后,使用數(shù)據(jù)查詢語(yǔ)句以相同的方式查詢數(shù)據(jù),可以看到下圖中的數(shù)據(jù)內(nèi)容已成功修改并插入到另一個(gè)表中,如下圖所示。這樣,問(wèn)題就解決了。

Oracle中插入數(shù)據(jù)怎么弄?

前提:在做insert數(shù)據(jù)之前,如果是非生產(chǎn)環(huán)境,請(qǐng)將表的索引和約束去掉,待insert完成后再建索引和約束。

insert into tab1 select * from tab2; commit;

這是最基礎(chǔ)的insert語(yǔ)句,我們把tab2表中的數(shù)據(jù)insert到tab1表中。根據(jù)經(jīng)驗(yàn),千萬(wàn)級(jí)的數(shù)據(jù)可在1小時(shí)內(nèi)完成。但是該方法產(chǎn)生的arch會(huì)非??欤枰P(guān)注歸檔的產(chǎn)生量,及時(shí)啟動(dòng)備份軟件,避免arch目錄撐爆。

alter table tab1 nologging;

insert /*+ append */ into tab1 select * from tab2;

commit; alter table tab1 logging;

該方法會(huì)使得產(chǎn)生arch大大減少,并且在一定程度上提高時(shí)間,根據(jù)經(jīng)驗(yàn),千萬(wàn)級(jí)的數(shù)據(jù)可在45分鐘內(nèi)完成。但是請(qǐng)注意,該方法適合單進(jìn)程的串行方式,如果當(dāng)有多個(gè)進(jìn)程同時(shí)運(yùn)行時(shí),后發(fā)起的進(jìn)程會(huì)有enqueue的等待。注意此方法千萬(wàn)不能dataguard上用,不過(guò)要是在database已經(jīng)force logging那也是沒(méi)有問(wèn)題的。

insert into tab1 select /*+ parallel */ * from tab2; commit;

對(duì)于select之后的語(yǔ)句是全表掃描的情況,我們可以加parallel的hint來(lái)提高其并發(fā),這里需要注意的是最大并發(fā)度受到初始化參數(shù)parallel_max_servers的限制,并發(fā)的進(jìn)程可以通過(guò)v$px_session查看,或者ps -ef |grep ora_p查看。

alter session enable parallel dml;

insert /*+ parallel */ into tab1 select * from tab2; commit;

其他方法:

并發(fā)的insert,尚未比較和方法2哪個(gè)效率更高(偶估計(jì)是方法2快),有測(cè)試過(guò)的朋友歡迎補(bǔ)充。

insert into tab1 select * from tab2 partition (p1);

insert into tab1 select * from tab2 partition (p2);

insert into tab1 select * from tab2 partition (p3);

insert into tab1 select * from tab2 partition (p4);

對(duì)于分區(qū)表可以利用tab1進(jìn)行多個(gè)進(jìn)程的并發(fā)insert,分區(qū)越多,可以啟動(dòng)的進(jìn)程越多。我曾經(jīng)試過(guò)insert 2.6億行記錄的一個(gè)表,8個(gè)分區(qū),8個(gè)進(jìn)程,如果用方法2,單個(gè)進(jìn)程完成可能要40分鐘,但是由于是有8個(gè)分區(qū)8個(gè)進(jìn)程,后發(fā)進(jìn)程有enqueue,所以因此需要的時(shí)間為40分鐘×8;但是如果用方法5,雖然單個(gè)進(jìn)程需要110分鐘,但是由于能夠并發(fā)進(jìn)程執(zhí)行,所以總共需要的時(shí)間就約為110分鐘了。

DECLARE TYPE dtarray IS TABLE OF VARCHAR2(20)

INDEX BY BINARY_INTEGER;

v_col1 dtarray; v_col2 dtarray; v_col3 dtarray;

BEGIN SELECT col1, col2, col3 BULK COLLECT INTO v_col1, v_col2, v_col3

FROM tab2;

FORALL i IN 1 .. v_col1.COUNT insert into tab1

WHERE tab1.col1 = v_col1;

END;

用批量綁定(bulk binding)的方式。當(dāng)循環(huán)執(zhí)行一個(gè)綁定變量的sql語(yǔ)句時(shí)候,在PL/SQL 和SQL引擎(engines)中,會(huì)發(fā)生大量的上下文切換(context switches)。使用bulk binding,能將數(shù)據(jù)批量的從plsql引擎?zhèn)鞯絪ql引擎,從而減少上下文切換過(guò)程,提升效率。該方法比較適合于在線處理,不必停機(jī)。

sqlplus -s user/pwd runlog.txt set copycommit 2;

set arraysize 5000;

copy from user/pwd@sid - to user/pwd@sid - insert tab1 using

select * from tab2; exit EOF

用copy的方法進(jìn)行插入,注意此處insert沒(méi)有into關(guān)鍵字。該方法的好處是可以設(shè)置copycommit和arrarysize來(lái)一起控制commit的頻率,上面的方法是每10000行commit一次。

網(wǎng)頁(yè)標(biāo)題:如何插入數(shù)據(jù)oracle 如何導(dǎo)入數(shù)據(jù)
網(wǎng)頁(yè)鏈接:http://muchs.cn/article24/doooije.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站設(shè)計(jì)公司、電子商務(wù)、云服務(wù)器App開(kāi)發(fā)企業(yè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)