溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Excel表格與數(shù)據(jù)庫(kù)的問(wèn)題

發(fā)布時(shí)間:2020-07-17 12:10:14 來(lái)源:網(wǎng)絡(luò) 閱讀:971 作者:長(zhǎng)路慢 欄目:關(guān)系型數(shù)據(jù)庫(kù)

整理一下前兩天工作中遇到一些最基礎(chǔ)的問(wèn)題

    因?yàn)楣ぷ餍枨?,把Excel表導(dǎo)入數(shù)據(jù)庫(kù)并,然后SQL語(yǔ)句進(jìn)行業(yè)務(wù)邏輯操作,最后把結(jié)果集導(dǎo)出表格。當(dāng)我聽(tīng)到這個(gè)任務(wù)時(shí)候,第一感覺(jué)沒(méi)什么難度,結(jié)果實(shí)力打臉。

    問(wèn)題一:Excel表格導(dǎo)入

        解決方案一:

            按照我學(xué)習(xí)過(guò)的思路,進(jìn)行邏輯導(dǎo)入,轉(zhuǎn)換成后綴.csv之后文件,打開cmd

            格式:

                sqlldr  userid=system/password control='d:\test.ctl';--這句命令先不執(zhí)行

            我們編輯需要執(zhí)行的腳本test.ctl

                load data

                infile 'e:\text.csv'--.csv的位置

                replace into table test--導(dǎo)入數(shù)據(jù)庫(kù)的表名稱,三個(gè)參數(shù)(replace替換)append(追加)insert(插入空表)

                fields termindted by ','--字段分隔符 

               (a1,a2,a3)--導(dǎo)入的列明

            這時(shí)候我們?cè)谶\(yùn)行第一條指令便可成功插入,本人測(cè)試插入失敗,有可能表明錯(cuò)誤。

        解決方案二:

            利用PL/SQL進(jìn)行解決:

                工具中輸入select * from test where 1=2 for update

                出現(xiàn)如下圖,打開小鎖,我們需要先把Excel內(nèi)容全選復(fù)制,表格中的類型每一列,一定與數(shù)據(jù)庫(kù)表類型一樣,否則一定會(huì)失??!選中我們數(shù)據(jù)庫(kù)整個(gè)行,粘貼上去就完成,別忘了打小綠色的對(duì)號(hào),然后再提交,不能忘??!個(gè)人在領(lǐng)導(dǎo)的指導(dǎo)下學(xué)習(xí)完成,雖然按不是難題,沒(méi)有真正的實(shí)操一切都等于零!

            Excel表格與數(shù)據(jù)庫(kù)的問(wèn)題

        解決方案三:

             利用PL/SQL自帶的導(dǎo)入工具來(lái)完成(不啰嗦)


    問(wèn)題二:Excel表格默認(rèn)科學(xué)計(jì)數(shù)法問(wèn)題

        那么導(dǎo)入之后驚奇的發(fā)現(xiàn),一列number類型的值竟然不對(duì)而且表現(xiàn)形式為科學(xué)計(jì)數(shù)法,原因到底在哪里?經(jīng)過(guò)排查并非轉(zhuǎn)換過(guò)程中出現(xiàn)了錯(cuò)誤,而是原本Excel表格中就是科學(xué)計(jì)數(shù)法!經(jīng)過(guò)百度和學(xué)習(xí)知道當(dāng)默認(rèn)數(shù)值超過(guò)12位以上,默認(rèn)是用科學(xué)計(jì)數(shù)法來(lái)顯示的,也試過(guò)了很多方法,那么簡(jiǎn)單方便高效的方法分享給大家,總結(jié)如下

        解決方案一:

            鼠標(biāo)選中右擊,選擇設(shè)置單元格,然后自定義類0(文本郵編等都可以),確定就可以變換成數(shù)字,不過(guò)有時(shí)候后面多出來(lái)幾個(gè)零,但是我們相對(duì)來(lái)就可以進(jìn)行操作!后綴.xls和.xlsx都可以那么.csv的保存之后再次打仍然為科學(xué)技術(shù)法未解決!

                   Excel表格與數(shù)據(jù)庫(kù)的問(wèn)題

       

    問(wèn)題三:再次導(dǎo)入一個(gè)新表格時(shí)候發(fā)現(xiàn)日期格式(數(shù)字類型)和我數(shù)據(jù)庫(kù)類型不一樣

            解決方案:          

                1、轉(zhuǎn)換日期格式需要在本列后面加上一空列

        2、選中日期列,數(shù)據(jù)-->分頁(yè)-->分隔符號(hào)-->選擇空格-->選中日期-->選擇YMD,點(diǎn)擊完成轉(zhuǎn)換成功,如下圖

            轉(zhuǎn)換前:

                            Excel表格與數(shù)據(jù)庫(kù)的問(wèn)題

            轉(zhuǎn)換后:

                

                            Excel表格與數(shù)據(jù)庫(kù)的問(wèn)題



    問(wèn)題四:工作完成后備份一定不可忘記,數(shù)據(jù)量小的時(shí)候,那么高效方便導(dǎo)出的方法,邏輯備份無(wú)疑最好的選擇,總結(jié)如下

            解決方案:

                利用數(shù)據(jù)庫(kù)邏輯備份exp(CMD命令)

            格式:

        exp system/tiger@Databases FILE=$path FULL=Y;

            解釋:

        導(dǎo)出整個(gè)庫(kù)需要權(quán)限提示是否獲取權(quán)限

    整篇的文章看上去沒(méi)有太大的技術(shù)含量,工作中讓人寸步難行,一起總結(jié)分享累計(jì)經(jīng)驗(yàn)決定成敗

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI