整理一下前两天工作中遇到一些<强>最基础>强劲的问题
,,,,因为工作需求,把Excel表导入数据库并,然后SQL语句进行业务逻辑操作,最后把结果集导出表格。当我听到这个任务时候,第一感觉没什么难度,结果实力打脸。
, <强>,,,问题一:Excel表格导入强>
,,,,,,,,解决方案一:
,,,,,,,,,,,,按照我学习过的思路,进行逻辑导入,转换成后缀. csv之后文件,打开cmd
,,,,,,,,,,,,格式:
,,,,,,,,,,,,,,,, sqlldr,用户id=系统/密码控制=& # 39;d: \ test.ctl& # 39;;——这句命令先不执行
,,,,,,,,,,,,我们编辑需要执行的脚本test.ctl
,,,,,,,,,,,,,,,,加载数据
,,,,,,,,,,,,,,,, infile & # 39; e: \ text.csv& # 39;——. csv的位置
,,,,,,,,,,,,,,,,替换成表测试——导入数据库的表名称,三个参数(取代替换)追加(追加)插入(插入空表)
,,,,,,,,由& # 39;字段termindted & # 39;——字段分隔符,
,,,,,,,,,,,,, (a1,a2,a3)--导入的列明
这时候我们在运行第一条指令便可成功插入,本人测试插入失败,有可能表明错误。
解决方案二:
利用PL/SQL进行解决:
工具中输入select * from test where 1=2 for update
出现如下图,打开小锁,我们需要先把Excel内容全选复制,表格中的类型每一列,一定与数据库表类型一样,否则一定会失败!选中我们数据库整个行,粘贴上去就完成,别忘了打小绿色的对号,然后再提交,不能忘!!个人在领导的指导下学习完成,虽然按不是难题,没有真正的实操一切都等于零!
解决方案三:
利用PL/SQL自带的导入工具来完成(不啰嗦)
问题二:Excel表格默认科学计数法问题
那么导入之后惊奇的发现,一列number类型的值竟然不对而且表现形式为科学计数法,原因到底在哪里?经过排查并非转换过程中出现了错误,而是原本Excel表格中就是科学计数法!经过百度和学习知道当默认数值超过12位以上,默认是用科学计数法来显示的,也试过了很多方法,那么简单方便高效的方法分享给大家,总结如下
解决方案一:
鼠标选中右击,选择设置单元格,然后自定义类0(文本邮编等都可以),确定就可以变换成数字,不过有时候后面多出来几个零,但是我们相对来就可以进行操作!后缀.xls和.xlsx都可以那么.csv的保存之后再次打仍然为科学技术法未解决!
,,,,,,,,,
,,,null