您好,登錄后才能下訂單哦!
整理一下前兩天工作中遇到一些最基礎的問題
因為工作需求,把Excel表導入數據庫并,然后SQL語句進行業務邏輯操作,最后把結果集導出表格。當我聽到這個任務時候,第一感覺沒什么難度,結果實力打臉。
問題一:Excel表格導入
解決方案一:
按照我學習過的思路,進行邏輯導入,轉換成后綴.csv之后文件,打開cmd
格式:
sqlldr 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;
解釋:
導出整個庫需要權限提示是否獲取權限
整篇的文章看上去沒有太大的技術含量,工作中讓人寸步難行,一起總結分享累計經驗決定成敗
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。