新聞中心
想過一個問題嗎?Excel是最常用的存儲數(shù)據(jù)的一個工具,但是當數(shù)量過大的時候,查詢會多有不便,能不能將Excel和某種數(shù)據(jù)庫打通,便于我們對數(shù)據(jù)的使用呢?本文將介紹如何能將Excel表格中的數(shù)據(jù)導入到Oracle。當我們把數(shù)據(jù)導入到了Oracle中,還能用Excel對其進行更新維護嗎?本文也會告訴你一種方法。

成都創(chuàng)新互聯(lián)是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設公司,自成立以來公司不斷探索創(chuàng)新,始終堅持為客戶提供滿意周到的服務,在本地打下了良好的口碑,在過去的10年時間我們累計服務了上千家以及全國政企客戶,如紙箱等企業(yè)單位,完善的項目管理流程,嚴格把控項目進度與質(zhì)量監(jiān)控加上過硬的技術實力獲得客戶的一致夸獎。
首先提供一種間接的思路:
利用Sql Server和Excel的近親關系,在Sql Server中利用OpenDataSource方法讀取Excel,并把數(shù)據(jù)拼寫成符合oracle的sql語句。
(sql server2005需要手工開啟OpenDataSource功能,sql server2005 -> 配置工具 -> 外圍應用配置器 -> 功能的外圍應用配置器 -> Database Engine -> 即席遠程查詢,如下圖所示)
在sql server中執(zhí)行如下代碼:
需要注意:
1)請?zhí)峁┱_的文件路徑和Sheet名稱;
2)關閉要讀取的Excel文件,否則會報錯;
3)確保to_date函數(shù)對應的字段在Excel中為日期類型;
用Excel插入、更新Orcale
- SELECT 'update userinfo set Useducation = '''
- + CASE WHEN [現(xiàn)文化程度] IS NULL THEN ''
- ELSE [現(xiàn)文化程度] END
- + CASE WHEN [技術等級] IS NULL THEN ''
- ELSE ''', Usskilllevel = ''' + [技術等級] END + ''''
- + CASE WHEN [加入黨派日期] IS NULL THEN ''
- ELSE ', Usdangtuantime = to_date(''' + CONVERT(VARCHAR(12), [加入黨派日期], 110)+ ''',''mm-dd-yyyy'')' END
- + CASE WHEN [入路工作日期] IS NULL THEN ''
- ELSE ', Usinputtime = to_date(''' + CONVERT(VARCHAR(12), [入路工作日期], 110)+ ''',''mm-dd-yyyy'')' END
- + CASE WHEN [出生日期] IS NULL THEN ''
- ELSE ', Usbirthdate = to_date(''' + CONVERT(VARCHAR(12), [出生日期], 110)+ ''',''mm-dd-yyyy'')' END
- + ' where Uscardid =''' + [身份證號] + ''';'
- FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
- 'Data Source=D:\gongren.xls;Extended Properties=Excel 8.0')...[Sheet1$]
- -----執(zhí)行結果如下:-----
- view sourceprint?
- update userinfo set Useducation = '中等???, Usinputtime = to_date('12-25-2000','mm-dd-yyyy'), Usbirthdate = to_date('09-06-1976','mm-dd-yyyy') where Uscardid ='132430197609061413';
- update userinfo set Useducation = '大學', Usskilllevel = '中級工', Usdangtuantime = to_date('07-11-2000','mm-dd-yyyy'), Usinputtime = to_date('07-01-2003','mm-dd-yyyy'), Usbirthdate = to_date('08-21-1979','mm-dd-yyyy') where Uscardid ='132826197908210332';
- update userinfo set Useducation = '大專', Usskilllevel = '高級工', Usdangtuantime = to_date('07-03-2001','mm-dd-yyyy'), Usinputtime = to_date('01-01-2005','mm-dd-yyyy'), Usbirthdate = to_date('10-26-1980','mm-dd-yyyy') where Uscardid ='132421198006260032';
在pl/sql中執(zhí)行上述代碼就行了。
原文鏈接:http://www.cnblogs.com/libinlink/archive/2011/07/12/2104024.html
【編輯推薦】
- Oracle SQL:經(jīng)典查詢練手
- Oracle分頁小談
- Oracle數(shù)據(jù)庫11g基準測試中表現(xiàn)卓越
- Oracle數(shù)據(jù)庫日常維護知識總結
文章題目:如何用Excel操作Oracle
網(wǎng)頁網(wǎng)址:http://m.fisionsoft.com.cn/article/dpdpdih.html


咨詢
建站咨詢
