<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
    • 評論 - 80
    • 引用 - 0

    導(dǎo)航

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

     

    將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ù)庫,將Excel數(shù)據(jù)先導(dǎo)入到Access??芍苯訉?dǎo)入點(diǎn)擊鼠標(biāo)右鍵,選擇導(dǎo)入,文件類型選擇要導(dǎo)入的Excel文件,也可通過創(chuàng)建宏用TransferSpreadsheet函數(shù)實(shí)現(xiàn)。
    2、在本地創(chuàng)建ODBC,鏈接oracle數(shù)據(jù)庫。將oracle中需要導(dǎo)入數(shù)據(jù)的表以鏈接表的方式在本地Access中創(chuàng)建(千萬不要使用導(dǎo)入表)。
    3、在Access數(shù)據(jù)庫中創(chuàng)建插入查詢將導(dǎo)入好的Excel數(shù)據(jù)導(dǎo)入到oracle中。

    此方法保證成功。

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

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

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

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

    有關(guān)SQLLDR的問題

    控制文件:input.ctl,內(nèi)容如下:
      load data           --1、控制文件標(biāo)識
      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)   -----定義列對應(yīng)順序

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

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

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

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

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

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

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

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

    我用的是A,OK,時(shí)間倉促,其他的沒有試過。

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

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

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

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

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

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

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

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

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

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

    打開 PLSQL DEV,打開一個(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)常會發(fā)生莫其妙的問題。尤其是通過 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 映射,然后直接插入即可。很方便,也沒發(fā)現(xiàn)有數(shù)據(jù)錯誤問題。
    曾經(jīng)有一個(gè)很麻煩的LONG RAW問題,用這個(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ù)庫(文本)之間傳輸數(shù)據(jù)

    H、odbc+pb

    用不同的odbc驅(qū)動程序連接不通的數(shù)據(jù)庫
    然后在pb環(huán)境中啟動數(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

    帖子很長,有空再整理。

    posted on 2009-10-22 14:25 不高興 閱讀(2926) 評論(0)  編輯  收藏 所屬分類: Oracle
     
    Copyright © 不高興 Powered by: 博客園 模板提供:滬江博客
    主站蜘蛛池模板: 麻豆视频免费播放| 97人妻无码一区二区精品免费| 国产极品粉嫩泬免费观看| 中文字幕乱码亚洲精品一区| 日韩在线播放全免费| 亚洲的天堂av无码| 亚洲免费人成视频观看| 亚洲婷婷天堂在线综合| 成人浮力影院免费看| 亚洲综合在线一区二区三区 | 麻豆国产人免费人成免费视频| 国产91在线|亚洲| 大学生一级特黄的免费大片视频| 亚洲日韩AV无码一区二区三区人| 日本久久久免费高清| 一区二区三区免费在线视频| 亚洲无人区一区二区三区| 久久精品中文字幕免费| 亚洲国产精品久久久久秋霞影院| 可以免费看黄的网站| 亚洲av永久中文无码精品综合| xvideos亚洲永久网址| 两个人看的www免费高清| 亚洲av丰满熟妇在线播放| 国产h肉在线视频免费观看| 亚洲AV成人精品一区二区三区| AV在线播放日韩亚洲欧| 久久青草免费91线频观看不卡| 亚洲成a人不卡在线观看| 国产无遮挡裸体免费视频| fc2免费人成在线视频| 4480yy私人影院亚洲| 在线免费观看韩国a视频| 国产精品一区二区三区免费| 亚洲综合激情视频| 免费午夜爽爽爽WWW视频十八禁| 久久精品免费观看国产| 亚洲AV女人18毛片水真多| 久久精品国产亚洲AV麻豆王友容| 妞干网免费视频观看| 男女一边摸一边做爽的免费视频 |