1. 程式人生 > >Excel表格與數據庫的問題

Excel表格與數據庫的問題

轉換 image 和我 sys 結果集 總結 分享圖片 file ffffff

整理一下前兩天工作中遇到一些最基礎的問題

因為工作需求,把Excel表導入數據庫並,然後SQL語句進行業務邏輯操作,最後把結果集導出表格。當我聽到這個任務時候,第一感覺沒什麽難度,結果實力打臉。

問題一:Excel表格導入

解決方案一:

按照我學習過的思路,進行邏輯導入,轉換成後綴.csv之後文件,打開cmd

格式:

sqlplus userid=system/password control='d:\test.ctl';--這句命令先不執行

我們編輯需要執行的腳本test.ctl

load data

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

replace into table test--導入數據庫的表名稱,三個參數(replace替換)append(追加)insert(插入空表)

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

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

這時候我們在運行第一條指令便可成功插入,本人測試插入失敗,有可能表明錯誤。

解決方案二:

利用PL/SQL進行解決:

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

出現如下圖,打開小鎖,我們需要先把Excel內容全選復制,表格中的類型每一列,一定與數據庫表類型一樣,否則一定會失敗!選中我們數據庫整個行,粘貼上去就完成,別忘了打小綠色的對號,然後再提交,不能忘!!個人在領導的指導下學習完成,雖然按不是難題,沒有真正的實操一切都等於零!

技術分享圖片

解決方案三:

利用PL/SQL自帶的導入工具來完成(不啰嗦)


問題二:Excel表格默認科學計數法問題

那麽導入之後驚奇的發現,一列number類型的值竟然不對而且表現形式為科學計數法,原因到底在哪裏?經過排查並非轉換過程中出現了錯誤,而是原本Excel表格中就是科學計數法!經過百度和學習知道當默認數值超過12位以上,默認是用科學計數法來顯示的,也試過了很多方法,那麽簡單方便高效的方法分享給大家,總結如下

解決方案一:

鼠標選中右擊,選擇設置單元格,然後自定義類0(文本郵編等都可以),確定就可以變換成數字,不過有時候後面多出來幾個零,但是我們相對來就可以進行操作!後綴.xls和.xlsx都可以那麽.csv的保存之後再次打仍然為科學技術法未解決!

技術分享圖片

問題三:再次導入一個新表格時候發現日期格式(數字類型)和我數據庫類型不一樣

解決方案:

1、轉換日期格式需要在本列後面加上一空列

2、選中日期列,數據-->分頁-->分隔符號-->選擇空格-->選中日期-->選擇YMD,點擊完成轉換成功,如下圖

轉換前:

技術分享圖片

轉換後:


技術分享圖片



問題四:工作完成後備份一定不可忘記,數據量小的時候,那麽高效方便導出的方法,邏輯備份無疑最好的選擇,總結如下

解決方案:

利用數據庫邏輯備份exp(CMD命令)

格式:

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

解釋:

導出整個庫需要權限提示是否獲取權限

整篇的文章看上去沒有太大的技術含量,工作中讓人寸步難行,一起總結分享累計經驗決定成敗

Excel表格與數據庫的問題