尝试往Oracle塞数据,使用的是ocilib;

效率:

100w记录 11.23s

10w记录 1.2s

离开配置谈效率都是扯淡,now 机器配置:

开始解决问题

1.下载相应的库,比如windows 32bit下载 ocilib-4.2.0-windows.zip;

2.解压文件,把

添加到自己的工程下;

3. 在需要的地方#include "ocilib.h";

4.over~~~

全部可执行代码:

#include "ocilib.h"

#pragma comment(lib, "ociliba.lib")

#define SIZE_ARRAY 100

#define NB_LOAD    1000

#define SIZE_COL1  20

#define SIZE_COL2  30

#define SIZE_COL3  8

#define NUM_COLS   3

int main(void)

{

OCI_Connection *cn;

OCI_DirPath    *dp;

OCI_TypeInfo   *tbl;

char val1[SIZE_COL1+1];

char val2[SIZE_COL2+1];

char val3[SIZE_COL3+1];

int i = 0, j = 0, nb_rows = SIZE_ARRAY;

boolean res = TRUE;

if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT))

return EXIT_FAILURE;

cn  = OCI_ConnectionCreate("db", "user", "pw", OCI_SESSION_DEFAULT);

tbl = OCI_TypeInfoGet(cn, "test_directpath", OCI_TIF_TABLE);

dp  = OCI_DirPathCreate(tbl, NULL, NUM_COLS, nb_rows);

/* optional attributes to set */

OCI_DirPathSetBufferSize(dp, 64000);

OCI_DirPathSetNoLog(dp, TRUE);

OCI_DirPathSetParallel(dp, TRUE);

/* describe the target table */

OCI_DirPathSetColumn(dp, 1, "VAL_INT",  SIZE_COL1, NULL);

OCI_DirPathSetColumn(dp, 2, "VAL_STR",  SIZE_COL2, NULL);

OCI_DirPathSetColumn(dp, 3, "VAL_DATE", SIZE_COL3, "YYYYMMDD");

/* prepare the load */

OCI_DirPathPrepare(dp);

nb_rows = OCI_DirPathGetMaxRows(dp);

for (i = 0; i

{

OCI_DirPathReset(dp);

for (j = 1; j <= nb_rows; j++)

{

/* fill test values */

sprintf(val1, "%04d", i + (i*100));

sprintf(val2, "value %05d", j + (i*100));;

sprintf(val3, "%04d%02d%02d", (j%23)+1 + 2000, (j%11)+1, (j%23)+1);

OCI_DirPathSetEntry(dp, j, 1, val1, (unsigned int) strlen(val1), TRUE);

OCI_DirPathSetEntry(dp, j, 2, val2, (unsigned int) strlen(val2), TRUE);

OCI_DirPathSetEntry(dp, j, 3, val3, (unsigned int) strlen(val3), TRUE);

}

/* load data to the server */

while (res)

{

int state = OCI_DirPathConvert(dp);

if ((state == OCI_DPR_FULL) || (state == OCI_DPR_COMPLETE))

res = OCI_DirPathLoad(dp);

if (state == OCI_DPR_COMPLETE)

break;

}

}

/* commits changes */

OCI_DirPathFinish(dp);

printf("%04d row(s) loaded\n", OCI_DirPathGetRowCount(dp));

/* free direct path object */

OCI_DirPathFree(dp);

OCI_Cleanup();

return EXIT_SUCCESS;

}

感兴趣的去这里看看

http://vrogier.github.io/ocilib/doc/html/index.html

oracle批量文件入库,C++ Oracle批量高效入库相关推荐

  1. cmd导入oracle库文件,cmd 导入oracle数据库

    从服务器将Oracle数据库导出到本地Oracle数据库的方法 原文:从服务器将Oracle数据库导出到本地Oracle数据库的方法 1.将服务器上的Oracle数据库导入到本地   在CMD模式下执 ...

  2. oracle参数文件initorcl位置,ORACLE参数文件

    ORACLE参数文件 简介 参数文件记录了数据库的配置.在数据库启动时,Oracle要根据参数文件中的参数配置数据库.如果为各个内存池分配多少内存,允许打开的进程数和会话数等.要让数据库启动,必须先读 ...

  3. 生成Yolox检测负样本-对应空文件夹txt、批量文件重命名、批量转化三通道去除小图

    1.生成Yolox检测负样本-对应空文件夹txt import os.path import cv2 from tqdm import tqdmpath = r"G:\pachong\fuy ...

  4. oracle 密码文件作用,测试 oracle 密码文件在何时起作用

    答案是在alter database mount 的过程中,instance 就读取oracle密码文件进行验证了. 对于windows来说,instance读取的是d:\oracle\ora92\d ...

  5. oracle参数文件initorcl位置,oracle 参数文件详解

    参数文件 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端, ...

  6. oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统

    工作中,有时需要把文件从ASM中复制到文件系统中或者反过来,做一些维护操作,本文介绍了4种复制文件的的方法:ASMCMD中的cp命令(11g) dbms_file_transfer包 rman的con ...

  7. oracle控制文件的复用,ORACLE 10g ASM 控制文件多路复用

    1> 检查数据库,查看控制文件存放路径 SQL> startup ORACLE instance started. Total System Global Area  230686720 ...

  8. oracle安装文件拒绝访问,oracle数据库的listener.ora文件拒绝访问,求解决!!!

    1. 执行$ORALCE_HOME/bin/netca,启动图形界2113面配置5261listener,配好后就有listener.ora文件4102了2. 在Linux图形界面下直接1653启ne ...

  9. oracle数据文件全部丢失,oracle 数据文件,控制文件和参数文件全部丢失恢复

    确保已经对全库进行备份 1.删除所有文件 [oracle@sql ~]$ cd /oracle/app/oradata/TEST/ [oracle@sql TEST]$ ls control01.ct ...

  10. oracle运行日志文件在哪,Oracle日志文件管理

    ORACLE数据库的Oracle日志文件$ORACLE_BASE/admin/orasid/bdump/alert_orasid.log记录了重作日志的转换,数据库启动和关闭,数据库结构的改变,回退段 ...

最新文章

  1. 电脑蓝屏问题检查、解决、
  2. ACM SIGKDD | MoFlow:基于流的分子图生成模型
  3. engineering department induction ppt
  4. java判断44数组是否是4阶幻方_2015蓝桥杯决赛Java A组 第二题--四阶幻方
  5. Java高级篇 -- List选择及优化
  6. C语言去括号编程题,去括号 - C语言网
  7. 【简明笔记】循环条件的优化
  8. 阿里程序员发70多万年终奖表示略感失望,网友:不要的话请给我!
  9. QModelIndex——
  10. quartz启动 mysql报错_quartz启动报错,本地是好的,部署到服务器就不行了,大神求助~~...
  11. rabbitmq初学之连接测试
  12. 7000个源码批量下载---复制来的
  13. 数据挖掘FPGrowth算法JAVA实现
  14. Django:ORM单表操作和多表操作、锁和事务
  15. 电脑里的所有播放器只能播放声音没有画面
  16. Albumentation使用指南
  17. VS 编译出现,LNK2005 连接错误解决办法
  18. 数据结构—约瑟夫环问题(C语言版)
  19. Word中批量更新域的两个小方法
  20. 微信公众号都有哪些营销技巧

热门文章

  1. OZ Report 오즈 리포트 개발
  2. 很好的一篇讲解sql优化的文章
  3. JAVA画SVG图(Batik框架)SVGComponentDemo
  4. centreon与nagios整合
  5. BZOJ4152 AMPPZ2014 The Captain 【最短路】【贪心】*
  6. ZigBee协议栈解析
  7. shell 之while两种写法
  8. 在Linux上显示某个进程的线程的几种方式
  9. AndroidManifest.xml 中application 的 android:name 属性作用
  10. 如何给网站添加rss功能