1,我们一般做导出的思路就是,根据我们想要的数据,全部查询出来,然后导出来,这个对数据量很大的时候会很慢,这里我提出来的思想就是分页和缓冲实现动态输出。

2.普通的我就不说了,下面我说一下分页和内存刷新思想。代码如下:

$conn = oci_connect(‘fin_data‘, ‘fin_data‘, "(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.6.65)(PORT = 1521))(CONNECT_DATA =(SID=hqygdw)))");

$sqlName = "select *

from user_tab_columns

where Table_Name=‘S_SALE_RECEIVABLE_DETAIL‘

order by column_name";

$filedName = oci_parse($conn, $sqlName);

oci_execute($filedName, OCI_DEFAULT); // 行数 OCI_DEFAULT表示不要自动commit

header(‘Content-Type: application/vnd.ms-excel;charset=gbk‘);

header(‘Content-Disposition: attachment;filename=test_‘ . time() . ‘.csv‘);

header(‘Cache-Control: max-age=0‘);

$fp = fopen(‘php://output‘, ‘a‘);

$head = array();

$i = 0;

while ($row = oci_fetch_array($filedName, OCI_ASSOC + OCI_RETURN_NULLS)) {

$head[$i] = iconv(‘utf-8‘, ‘gbk‘, $row[‘COLUMN_NAME‘]);

$i++;

}

fputcsv($fp, $head);

$selectCount = "select count(*) as counts from S_SALE_RECEIVABLE_DETAIL t ";

$resultCount = oci_parse($conn, $selectCount); // 配置SQL语句,执行SQL

oci_execute($resultCount, OCI_DEFAULT); // 行数 OCI_DEFAULT表示不要自动commit

$count = oci_fetch_array($resultCount, OCI_ASSOC + OCI_RETURN_NULLS);

//$count[‘COUNTS‘]=10;

$pageNum = 50000;

$pagePre = ceil($count[‘COUNTS‘] / $pageNum);

for ($i = 1; $i <= $pagePre; $i++) {

$pageStart = ($i - 1) * $pageNum + $pageNum;

$pageEnd = ($i - 1) * $pageNum;

$select = "SELECT *

FROM (SELECT A.*, ROWNUM RN

FROM (SELECT * FROM S_SALE_RECEIVABLE_DETAIL) A

WHERE ROWNUM <={$pageStart} )

WHERE RN >= {$pageEnd}";

$result = oci_parse($conn, $select); // 配置SQL语句,执行SQL

oci_execute($result, OCI_DEFAULT); // 行数 OCI_DEFAULT表示不要自动commit

$count =0;

while ($rowResult = oci_fetch_array($result, OCI_ASSOC + OCI_RETURN_NULLS)) {

// print_r(explode(‘,‘,$rowResult));exit;

fputcsv($fp,$rowResult);

$count++;

if($count>=$pageNum){

ob_flush();

flush();

}

}

}

fputcsv($fp, $head);

原文:http://www.cnblogs.com/kobigood/p/6936388.html

php oracle打印输出,php 连接oracle 导出百万级数据相关推荐

  1. oracle百万级数据导入,用Perl从oracle导出百万级数据到excel

    Perl从oracle导出百万级数据到excel excel 2007 可以存放1048576行.16384列的数据:excel 2003大概是65535行 我从oracle中导出30万行60列的数据 ...

  2. 使用POI导出百万级数据到excel的解决方案

    使用POI导出百万级数据到excel的解决方案 参考文章: (1)使用POI导出百万级数据到excel的解决方案 (2)https://www.cnblogs.com/hxun/p/11419006. ...

  3. php导出1万条数据excel_PHP快速导出百万级数据到CSV或者EXCEL文件

    前言: 很多时候,因为数据统计,我们需要将数据库的数据导出到Excel等文件中,以供数据人员进行查看,如果数据集不大,其实很容易:但是如果对于大数集的导出,将要考虑各种性能的问题,这里以导出数据库一百 ...

  4. Excel导入导出百万级数据

    Excel百万级数据导入导出方案 本文使用EasyExcel工作,导出格式XLSX 1.生成测试数据 这里用到的是MYSQL 5.7.31 创建表语句 CREATE TABLE `ACT_RESULT ...

  5. Excel怎么导出百万级数据

    以前很久没碰到导出上10万数据到Excel.最近两年的业务有导出几十万数据的场景.Excel导出之前一直用NPOI导出的,NPOI的优势是不依赖Office环境.但是早期的NPOI导出操作Excel全 ...

  6. kettle分批处理大表数据_Kettle大量数据快速导出的解决方案(利用SQL导出百万级数据,挺快的)...

    org.apache.commons commons-vfs2 2.0 org.scannotation scannotation 1.0.3 dom4j dom4j 1.6.1 pentaho-ke ...

  7. Java写入大字符串到oracle数据库_java程序如何提高oracle百万级数据的insert效率

    业务:需要从一个数据库查询百万级数据,在java程序中插入到另一个oracle数据库中 代码: private final int persize = 1000; /** * 推送数据-流程 * @p ...

  8. python3连接oracle教程,python3连接oracle数据库

    我这里使用的版本是python3.6 64位 ,cx_Oracle-5.3-11g.win-amd64-py3.6-2和instantclient-basic-windows.x64-18.5.0.0 ...

  9. arcgis读取oracle数据库,arcgis连接Oracle数据库

    arcgis连接Oracle数据库 配置声明:本人的电脑是win10 64位,安装的Oracle是oracleR11gr2 64  arcgis版本位10.2 安装是在同一台电脑上. 一.首先是安装O ...

最新文章

  1. 编译参数-ObjC的说明
  2. 「娃娃分享」-常见自校检分析实例.
  3. 在CodeBlocks下配置GoogleTest单元测试框架
  4. mysql2800_mysql error 1045 (2800):。。 'root'@'localhost' (using password:YES)
  5. oracle03206,ORACLE数据库创建表空间ORA-03206报错的解决方案
  6. 华为鸿蒙系统学习笔记3-方舟编译器介绍
  7. Quartus II 自带Simulaiton 与 Modelsim Simulaiton功能仿真
  8. ProE/Creo免费插件 MCADEx Tools 4.2
  9. Oracle 数据库用户表大小分析
  10. PHP计算GPS路书,搜狗地图推出路书功能 免费而智能的GPS
  11. 长整数转化成16进制字符串
  12. ad16中如何改变栅格颜色
  13. kingroot权限管理_KingRoot授权管理
  14. python利用ffmpeg进行rtmp推流直播
  15. 虚拟实验工场计算机科学导论论文,计算机科学导论论文
  16. 生产者消费者算法的实现
  17. Camtasia2020视频录制软件的安装及pj顶级屏幕录像视频编辑软件
  18. 纳尼,五子棋AI居然这么简单?
  19. C# winform 编写一键排班软件时遇到的问题
  20. 程序员的爱情 第十三章

热门文章

  1. python编程入门到实践笔记-python基础(《Python编程:从入门到实践》读书笔记)...
  2. 2020网络数据平面峰会-无损网络,真的无损?-杨益锋
  3. F-Stack KNI配置注意事项
  4. libuv:多平台支持库-异步I / O
  5. 汇编:LEA(取偏移地址)、LES
  6. plsql怎么用字段查表明_PLSQL查询语句
  7. golang 数组 最后一个_Golang 内存管理
  8. 利用ECG关于HRV分析
  9. JS中的六大数据类型 (笔记0)
  10. Redis之jedis连接池