利用Sql Server將Excel中的數(shù)據(jù)導(dǎo)入Oracle
本文提供一種間接把Excel中的數(shù)據(jù)導(dǎo)入Oracle中的方法:利用Sql Server和Excel的近親關(guān)系,在Sql Server中利用OpenDataSource方法讀取Excel,并把數(shù)據(jù)拼寫成符合oracle的sql語句。
在sql server中執(zhí)行如下代碼:
- SELECT 'update userinfo set Useducation = '''
- + CASE WHEN [現(xiàn)文化程度] IS NULLTHEN ''
- ELSE [現(xiàn)文化程度] END
- + CASEWHEN [技術(shù)等級] IS NULLTHEN ''
- ELSE ''', Usskilllevel = '''+ [技術(shù)等級] END + ''''
- + CASEWHEN [加入黨派日期] IS NULLTHEN ''
- ELSE ', Usdangtuantime = to_date('''+ CONVERT(VARCHAR(12), [加入黨派日期], 110)+ ''',''mm-dd-yyyy'')' END
- + CASEWHEN [入路工作日期] IS NULLTHEN ''
- ELSE ', Usinputtime = to_date('''+ CONVERT(VARCHAR(12), [入路工作日期], 110)+ ''',''mm-dd-yyyy'')' END
- + CASEWHEN [出生日期] IS NULLTHEN ''
- ELSE ', Usbirthdate = to_date('''+ CONVERT(VARCHAR(12), [出生日期], 110)+''',''mm-dd-yyyy'')' END
- + ' where Uscardid ='''+ [身份證號(hào)] + ''';'
- FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
- 'Data Source=D:\gongren.xls;Extended Properties=Excel 8.0')...[Sheet1$]
需要注意:
1)請?zhí)峁┱_的文件路徑和Sheet名稱;
2)關(guān)閉要讀取的Excel文件,否則會(huì)報(bào)錯(cuò);
3)確保to_date函數(shù)對應(yīng)的字段在Excel中為日期類型;
執(zhí)行結(jié)果如下:
- 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 = '大學(xué)', 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í)行上述代碼就行了。
本文就介紹到這里,更多關(guān)于Oracle的內(nèi)容請到這里:http://database.51cto.com/oracle/,謝謝大家的支持!
【編輯推薦】