从PL/SQL导出大量数据到Excel的方法。 |
您所在的位置:网站首页 › 数据库表导出excel文件夹 › 从PL/SQL导出大量数据到Excel的方法。 |
方法一: 1.在PLSQL中的SQL窗口执行查询代码,因为是大量数据,所以SQL执行时间应该会比较长,此时在执行过程中点击中断按钮 2.在结果窗口中点击下图所框出的按钮,并选择导出为csv文件。导出时间与数据量大小和网速有关。(选择csv文件是因为该格式支持超过百万行的数据,且可以用文本编辑器进行编辑,并且最后能用excel打开)。 3.在csv文件导出完成后,使用文本编辑器打开该文件。(如notepad++)将数据分成小于excel最大行数的两部分,实验时我在文本编辑器中将140W条数据按行数分成了80W前和80W后的两部分数据。分别保存为1.csv和2.csv 4.新建excel文件,在工具栏中点击 数据-自文本 ,选择1.csv,点击导入 按下图方法设置3步 第三步中若数据里包含了很长的数字类型,若转到excel中会变成科学计数法且最后几位变为0,需要在下方的“数据预览”中选择该字段,然后将列数据格式选择为文本。其余字段的格式请按需选择。 设置完毕后耐心等待,excel会加载数据,在后台数据转换时还会有比较高的CPU占用。 完毕后另存为excel文件即可,此时1.csv文件的数据已保存为excel格式。在该excel中新建一个sheet页,按照上述步骤可将2.csv文件导入,最后保存。 此时任务完成,将140万行数据分为了2个sheet页保存在了excel文件中。 方法二: 在SQL中做文章,在要导出数据的SQL中字段里增加一列rownum,外部嵌套一层select*将数据按条数来分开。 按取数场景选择数据的分法,测试时的数据像这样: 但是仔细看该SQL,取的是3月份的数据,然后按数据量来分开。如果对数据分段条数没有特别严格的要求,可以将按table里面的date来区分,这样会减少数据库的压力。 如分成这样两条,前半月和后半月的数据。 这样一来若是table与很多其他表有关联的话,数据库压力会小很多,而且也能够选择直接导出成excel。 (好比两条SQL,每个主表70W条,执行2次;一条SQL数据140W条执行2次,再分成前70W和后70W) 下图是执行开销 按主表时间片段分 按总结果条数分 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |