oracle批量文件入库,C++ Oracle批量高效入库
尝试往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批量高效入库相关推荐
- cmd导入oracle库文件,cmd 导入oracle数据库
从服务器将Oracle数据库导出到本地Oracle数据库的方法 原文:从服务器将Oracle数据库导出到本地Oracle数据库的方法 1.将服务器上的Oracle数据库导入到本地 在CMD模式下执 ...
- oracle参数文件initorcl位置,ORACLE参数文件
ORACLE参数文件 简介 参数文件记录了数据库的配置.在数据库启动时,Oracle要根据参数文件中的参数配置数据库.如果为各个内存池分配多少内存,允许打开的进程数和会话数等.要让数据库启动,必须先读 ...
- 生成Yolox检测负样本-对应空文件夹txt、批量文件重命名、批量转化三通道去除小图
1.生成Yolox检测负样本-对应空文件夹txt import os.path import cv2 from tqdm import tqdmpath = r"G:\pachong\fuy ...
- oracle 密码文件作用,测试 oracle 密码文件在何时起作用
答案是在alter database mount 的过程中,instance 就读取oracle密码文件进行验证了. 对于windows来说,instance读取的是d:\oracle\ora92\d ...
- oracle参数文件initorcl位置,oracle 参数文件详解
参数文件 两类参数文件: pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端, ...
- oracle 拷贝文件到asm,Oracle 从ASM复制文件到文件系统
工作中,有时需要把文件从ASM中复制到文件系统中或者反过来,做一些维护操作,本文介绍了4种复制文件的的方法:ASMCMD中的cp命令(11g) dbms_file_transfer包 rman的con ...
- oracle控制文件的复用,ORACLE 10g ASM 控制文件多路复用
1> 检查数据库,查看控制文件存放路径 SQL> startup ORACLE instance started. Total System Global Area 230686720 ...
- oracle安装文件拒绝访问,oracle数据库的listener.ora文件拒绝访问,求解决!!!
1. 执行$ORALCE_HOME/bin/netca,启动图形界2113面配置5261listener,配好后就有listener.ora文件4102了2. 在Linux图形界面下直接1653启ne ...
- oracle数据文件全部丢失,oracle 数据文件,控制文件和参数文件全部丢失恢复
确保已经对全库进行备份 1.删除所有文件 [oracle@sql ~]$ cd /oracle/app/oradata/TEST/ [oracle@sql TEST]$ ls control01.ct ...
- oracle运行日志文件在哪,Oracle日志文件管理
ORACLE数据库的Oracle日志文件$ORACLE_BASE/admin/orasid/bdump/alert_orasid.log记录了重作日志的转换,数据库启动和关闭,数据库结构的改变,回退段 ...
最新文章
- 电脑蓝屏问题检查、解决、
- ACM SIGKDD | MoFlow:基于流的分子图生成模型
- engineering department induction ppt
- java判断44数组是否是4阶幻方_2015蓝桥杯决赛Java A组 第二题--四阶幻方
- Java高级篇 -- List选择及优化
- C语言去括号编程题,去括号 - C语言网
- 【简明笔记】循环条件的优化
- 阿里程序员发70多万年终奖表示略感失望,网友:不要的话请给我!
- QModelIndex——
- quartz启动 mysql报错_quartz启动报错,本地是好的,部署到服务器就不行了,大神求助~~...
- rabbitmq初学之连接测试
- 7000个源码批量下载---复制来的
- 数据挖掘FPGrowth算法JAVA实现
- Django:ORM单表操作和多表操作、锁和事务
- 电脑里的所有播放器只能播放声音没有画面
- Albumentation使用指南
- VS 编译出现,LNK2005 连接错误解决办法
- 数据结构—约瑟夫环问题(C语言版)
- Word中批量更新域的两个小方法
- 微信公众号都有哪些营销技巧