<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Energy of Love  
    日歷
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567
    統(tǒng)計(jì)
    • 隨筆 - 70
    • 文章 - 0
    • 評(píng)論 - 80
    • 引用 - 0

    導(dǎo)航

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

     

    將excel數(shù)據(jù)導(dǎo)入oracle中

    http://www.douzhe.com/docs/bbsjh/8/3383.html 這個(gè)帖子的討論,整理如下:

    A、有一個(gè)比較麻煩但保證成功的方法。
    1、在本地創(chuàng)建一個(gè)Access數(shù)據(jù)庫(kù),將Excel數(shù)據(jù)先導(dǎo)入到Access??芍苯訉?dǎo)入點(diǎn)擊鼠標(biāo)右鍵,選擇導(dǎo)入,文件類型選擇要導(dǎo)入的Excel文件,也可通過(guò)創(chuàng)建宏用TransferSpreadsheet函數(shù)實(shí)現(xiàn)。
    2、在本地創(chuàng)建ODBC,鏈接oracle數(shù)據(jù)庫(kù)。將oracle中需要導(dǎo)入數(shù)據(jù)的表以鏈接表的方式在本地Access中創(chuàng)建(千萬(wàn)不要使用導(dǎo)入表)。
    3、在Access數(shù)據(jù)庫(kù)中創(chuàng)建插入查詢將導(dǎo)入好的Excel數(shù)據(jù)導(dǎo)入到oracle中。

    此方法保證成功。

    B、也可以導(dǎo)入sql server 用它的導(dǎo)出工具導(dǎo)入oracle 但對(duì)一些image字段支持不好,你如果
    沒(méi)這種字段就行。

    用MS_sqlserver 提供的數(shù)據(jù)導(dǎo)出導(dǎo)入功能可以方便的把excel方便的導(dǎo)入oracle數(shù)據(jù)庫(kù)

    C、一種方法:
    先把Excel另存為.csv格式文件,如test.csv,再編寫(xiě)一個(gè)insert.ctl
    用sqlldr進(jìn)行導(dǎo)入!
    insert.ctl內(nèi)容如下:
    load data                    --1、控制文件標(biāo)識(shí)
    infile 'test.csv'                --2、要輸入的數(shù)據(jù)文件名為test.csv
    append into table table_name       --3、向表table_name中追加記錄
    fields terminated by ','             --4、字段終止于',',是一個(gè)逗號(hào)
    (field1,
    field2,
    field3,
    ...
    fieldn)-----定義列對(duì)應(yīng)順序

    注意括號(hào)中field排列順序要與csv文件中相對(duì)應(yīng)
    然后就可以執(zhí)行如下命令:
    sqlldr user/password control=insert.ctl

    有關(guān)SQLLDR的問(wèn)題

    控制文件:input.ctl,內(nèi)容如下:
      load data           --1、控制文件標(biāo)識(shí)
      infile 'test.txt'       --2、要輸入的數(shù)據(jù)文件名為test.txt
      append into table test    --3、向表test中追加記錄
      fields terminated by X'09'  --4、字段終止于X'09',是一個(gè)制表符(TAB)
      (id,username,password,sj)   -----定義列對(duì)應(yīng)順序

    其中append為數(shù)據(jù)裝載方式,還有其他選項(xiàng):
    a、insert,為缺省方式,在數(shù)據(jù)裝載開(kāi)始時(shí)要求表為空
    b、append,在表中追加新記錄
    c、replace,刪除舊記錄,替換成新裝載的記錄
    d、truncate,同上

    問(wèn)題:SQLLDR能不能保留表中原有的數(shù)據(jù),如果發(fā)現(xiàn)KEY重復(fù)時(shí),再UPDATE對(duì)應(yīng)的記錄?

    D、先?EXCEL文件??成TXT文件
    再使用SQLLOADER

    E、將EXCEL文件保存成*.csv格式. 然后用sqlload來(lái)導(dǎo)入表中.

    sqlload是Oracle自帶的數(shù)據(jù)倒入工具,應(yīng)該是沒(méi)有可視化工具的(至少我一直用命令行)。
    直接在命令行下敲入sqlldr即可得到幫助。

    F、如果你的單個(gè)文件不大的情況下(少于100000行), 可以全選COPY ,然后用PL/SQL.:
    select * from table for update. 然后打開(kāi)鎖, 再按一下加號(hào). 鼠標(biāo)點(diǎn)到第一個(gè)空格然后粘貼. COMMIT即可.(小竅門(mén), ORACLE不支持的, 但很好用, 不會(huì)有問(wèn)題)

    G、Golden的imp/exp工具可以直接導(dǎo)入文本文件,非常簡(jiǎn)單

    下面這個(gè)不知道是針對(duì)以上哪種方法的:
          放心:excel文件最多只有65536條記錄
          不放心:曾經(jīng)如此導(dǎo)過(guò),但當(dāng)有中文字段時(shí)可能出現(xiàn)異常(PL/SQL DEV5)

    我用的是A,OK,時(shí)間倉(cāng)促,其他的沒(méi)有試過(guò)。

    http://www.itpub.net/101803.html 這個(gè)帖子如是說(shuō):

    你用的方法可能是:
    1. 存成txt文件, 再用sql*loader
    2. 存成txt文件, 再用第三方工具(如pb, delphi, toad, pl/sql dev等)導(dǎo)入.

    sql*loader用起來(lái)費(fèi)勁, 為了小小的需求, 裝一個(gè)第三方工具麻煩.
    看看我的方法.

    比如文件中有id, name兩列(分別為A列和B列), 要導(dǎo)入的表為person(person_id, person_name)

    在excel 文件的sheet的最右列, 添加一列, 對(duì)應(yīng)第一行數(shù)據(jù)的單元格寫(xiě)入以下內(nèi)容:

    = "INSERT INTO PERSON(PERSON_ID, PERSON_NAME) VALUES('" & A1 & "', '" & B1 & "');"

    然后把這一行復(fù)制到所有數(shù)據(jù)行對(duì)應(yīng)的列中.

    這一列的內(nèi)容拷貝出去保存, 即成為可以直接在sql*plus下運(yùn)行的腳本.

    方法一?日期型?位不適用

    A、把Excel文件導(dǎo)到Acess里,然后打開(kāi)要導(dǎo)數(shù)據(jù)的表。

    打開(kāi) PLSQL DEV,打開(kāi)一個(gè)SQL窗口,執(zhí)行
    select * from [tab] for update

    然后一列一列的從Acess里copy & paste 。

    B、excel->copy->pl/sql developer>paste

    實(shí)際操作時(shí)發(fā)現(xiàn),使用 copy / paste 經(jīng)常會(huì)發(fā)生莫其妙的問(wèn)題。尤其是通過(guò) access ( ODBC) copy 入 oracle 時(shí)。

    EXECL -->SAVE AS *.CSV(COMMA DELIMITED). THEN LOAD IT DIRECTLY.


    CTL FILE EXAMPLE
    ------------
    Load Data
    INFILE 'E:\AA.csv'
    TRUNCATE
    INTO TABLE AA
    FIELDS TERMINATED BY ','
    (A,
    B)

    C、在ACCESS中將ORACLE TABLE 映射,然后直接插入即可。很方便,也沒(méi)發(fā)現(xiàn)有數(shù)據(jù)錯(cuò)誤問(wèn)題。
    曾經(jīng)有一個(gè)很麻煩的LONG RAW問(wèn)題,用這個(gè)辦法也解決了

    D、用SQL*XL就可以直接將EXCEL文件導(dǎo)入ORACLE,很方便的,我一直用SQL*XL。

    E、我常用的辦法是從excel中copy到ultraEdit中,然后用列編輯功能加上insert into ....等等,也挺好用

    F、用plsql developer,很好用的,直接copy就可以了

    在pl/sql developer 中選擇表的多個(gè)字段名,然后就可以paste 了

    G、用odbc加pb的數(shù)據(jù)管道可以在不同的數(shù)據(jù)庫(kù)(文本)之間傳輸數(shù)據(jù)

    H、odbc+pb

    用不同的odbc驅(qū)動(dòng)程序連接不通的數(shù)據(jù)庫(kù)
    然后在pb環(huán)境中啟動(dòng)數(shù)據(jù)管道,利用數(shù)據(jù)管道傳輸數(shù)據(jù)

    I、先倒成。DBF的文件,再用DELPHI DATABASE DESKTOP 導(dǎo)入ORACLE很方便的,也且也可以支持空值導(dǎo)入。

    http://www.itpub.net/showthread.php?s=7f7b57ea130ab71a3fdad57a71d8f8a1&threadid=97652&perpage=15&pagenumber=2

    帖子很長(zhǎng),有空再整理。

    posted on 2009-10-22 14:25 不高興 閱讀(2927) 評(píng)論(0)  編輯  收藏 所屬分類: Oracle
     
    Copyright © 不高興 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 久久黄色免费网站| 日韩a在线观看免费观看| 亚洲精品中文字幕麻豆| 永久免费无码网站在线观看| 人妻仑乱A级毛片免费看| 亚洲第一福利网站| 日日夜夜精品免费视频| 男女午夜24式免费视频| 亚洲暴爽av人人爽日日碰| 亚洲精品一品区二品区三品区| 曰曰鲁夜夜免费播放视频| 成人一级免费视频| 亚洲免费在线视频播放| 亚洲福利在线播放| 91嫩草国产在线观看免费| 国产精品免费视频观看拍拍| 91亚洲va在线天线va天堂va国产| 日本免费福利视频| 91香焦国产线观看看免费 | 男人扒开添女人下部免费视频| 久久99国产亚洲精品观看| 国产福利免费观看| 最近最好最新2019中文字幕免费| 免费看又黄又爽又猛的视频软件| 亚洲国产成人九九综合| 亚洲AV无码乱码在线观看裸奔| 国产成人综合久久精品免费| 精品久久8x国产免费观看| 丰满人妻一区二区三区免费视频| 亚洲一区二区无码偷拍| 亚洲网址在线观看你懂的| 国产AV无码专区亚洲AV漫画| 国内精品免费视频自在线| 特级精品毛片免费观看| 一级毛片免费视频网站| 亚洲国产午夜精品理论片在线播放| 亚洲高清中文字幕| 国产成人精品日本亚洲网站| 亚洲成a人片在线观看日本麻豆| 成年女人免费视频播放77777| 无码国产精品一区二区免费16 |