本文提供一种间接把Excel中的数据导入Oracle中的方法:利用Sql Server和Excel的近亲关系,在Sql Server中利用OpenDataSource方法读取Excel,并把数据拼写成符合oracle的sql语句。
在sql server中执行如下代码:
- SELECT 'update userinfo set Useducation = '''
- + CASE WHEN [现文化程度] IS NULLTHEN ''
- ELSE [现文化程度] END
- + CASEWHEN [技术等级] IS NULLTHEN ''
- ELSE ''', Usskilllevel = '''+ [技术等级] 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 ='''+ [身份证号] + ''';'
- FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
- 'Data Source=D:\gongren.xls;Extended Properties=Excel 8.0')...[Sheet1$]
需要注意:
1)请提供正确的文件路径和Sheet名称;
2)关闭要读取的Excel文件,否则会报错;
3)确保to_date函数对应的字段在Excel中为日期类型;
执行结果如下:
- 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中执行上述代码就行了。
本文就介绍到这里,更多关于Oracle的内容请到这里:http://database./oracle/,谢谢大家的支持!
【编辑推荐】
- 嵌入式数据库Sqlce读取数据过程简介
- 微软WP7本地数据库之SQLite编程技巧
- 数据库开发工具DreamCoder宣布全面免费
- 一步一步设计你的数据库之如何提取业务规则
- 一步一步设计你的数据库之不可轻视的需求分析
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/250462.html<

