#include "ocilib.h"

#define INSERT_SQL_00    MT("INSERT INTO C_PICRECORD_00 (ID, DEV_ID) VALUES (:id, :devid)")
#define CHECK_SUCCESS(ret, x, err, clear) ret = x;if(ret < 1){GET_LAST_ERROR(err);goto clear;} int CFLOracleOCIVisitor::insertVehRecords(DB_Write_info_t** dbInfo, int count)
{
if(isConnected() != )
return -; int nRet = ;
std::string strTmp;
OCI_Statement* stm = OCI_StatementCreate( m_conn);
if(NULL == stm)
{
m_Error = OCI_GetLastError();
return -;
}
uint32* tab_id = new uint32[count];
memset(tab_id, , count);
char* tab_devid = new char[count*];
memset(tab_devid, , count*);
//Prepare
CHECK_SUCCESS(nRet, OCI_Prepare(stm, INSERT_SQL_00), m_Error, clear);
// binding
CHECK_SUCCESS(nRet, OCI_BindArraySetSize(stm, count), m_Error, clear);
OCI_BindArrayOfUnsignedInts(stm, ":id", (uint32*)tab_id, );
OCI_BindArrayOfStrings(stm, ":devid", (char*)tab_devid, , );
for(int i = ; i < count; i++)
{
tab_id[i] = dbInfo[i]->dbId;
memcpy(tab_devid+i*, dbInfo[i]->devId, );
}
//execute
CHECK_SUCCESS(nRet, OCI_Execute(stm), m_Error, clear);
CHECK_SUCCESS(nRet, OCI_Commit(m_conn), m_Error, clear); clear:
OCI_StatementFree(stm); delete[] tab_id;
delete[] tab_devid;
return nRet;
}

[Oracle]ocilib绑定数组实现批量写入的更多相关文章

  1. 向Oracle中传入数组,批量执行SQL语句

    1.首先用PL/SQL创建package create or replace package excuteBatchOperate as type sqlStr_Array ) index by bi ...

  2. MySQL通用批量写入工具(Python)

    背景   平台目前的分析任务主要以Hive为主,分析后的结果存储在HDFS,用户通过REST API或者Rsync的方式获取分析结果,这样的方式带来以下几个问题:   (1)任务执行结束时间未知,用户 ...

  3. 使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

    原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇到需要向SQL Server插入批量数据,然后在存储过程中对这些数据进行进一步处理的情况.存储过 ...

  4. 批量插入数据, 将DataTable里的数据批量写入数据库的方法

    大量数据导入操作, 也就是直接将DataTable里的内容写入到数据库 通用方法: 拼接Insert语句, 好土鳖 1. MS Sql Server:   使用SqlBulkCopy 2. MySql ...

  5. 使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历

    使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历   原文:使用XML向SQL Server 2005批量写入数据——一次有关XML时间格式的折腾经历 常常遇 ...

  6. 高级参数绑定(数组和List绑定)

    1.绑定数组: (1) 需求 在商品列表页面选中多个商品,然后删除. (2). 需求分析 功能要求商品列表页面中的每个商品前有一个checkbok,选中多个商品后点击删除按钮把商品id传递给Contr ...

  7. oracle中的数组

    Oracle中的数组分为固定数组和可变数组. 一.固定数组固定数组:在定义的时候预定义了数组的大小,在初始化数组时如果超出这个大小,会提示ORA-06532:超出小标超出限制!语法:        T ...

  8. DataTable数据批量写入数据库三种方法比较

    DataTable数据批量写入数据库三种方法比较 标签: it 分类: C#1)   insert循环插入:2)   sqldataadapter.update(dataset,tablename); ...

  9. mysql批量写入

    MySQL批量写入语法是: INSERT INTO table (field1,field2,field3) VALUES (“a”,”b”,”c”), (“a1”,”b1”,”c1”),(“a2”, ...

随机推荐

  1. Java之可变参数

    Java中支持可变参数 意思就是:参数的个数可以根据需要写,你可以写1个.2个.3个....他们都被保存到一个参数的数组中. 但是这些参有一些约束:他们必须是同类型的,比如都是String字符串类型. ...

  2. oracle 数据库学习

    1.更改数据库用户名密码: alter user '用户名' identified by ’password'. 2.查看数据库有哪些用户:sqlplus system/password ;selec ...

  3. PHP学习笔记五【方法】

    <?php $num1=34; $num2=90; $oper="+"; $res=0; switch($oper) { case "+": $res=$ ...

  4. 232. Implement Queue using Stacks,225. Implement Stack using Queues

    232. Implement Queue using Stacks Total Accepted: 27024 Total Submissions: 79793 Difficulty: Easy Im ...

  5. 2015.4.16-SQL-内连接与外连接

    1.内连接 如图: 关键字 inner join 2.外连接 分为左外连接 和右外连接,即如果是左外连接,即使左面没有值,也会显示为null, 右外连接也如此 关键字 left join ; righ ...

  6. Linux内核目录解析~

    以前进过一些公司看到一些服务器,把环境搭建都搭建在etc里面,而且都乱套了.在找PHP配置文件和apache的conf文件都难找到, 我们应该大致的了解下linux的文件分布 /etc : 放置系统重 ...

  7. jquery判断客户端的类型

    针对不同客户端下载链接的页面响应样式不一样,更人性点而已 //匹配客户端类型 var isAndroid = navigator.userAgent.toLowerCase().match(/andr ...

  8. windows10快捷键

    • 贴靠窗口:Win +左/右> Win +上/下>窗口可以变为1/4大小放置在屏幕4个角落  • 切换窗口:Alt + Tab(不是新的,但任务切换界面改进)  • 任务视图:Win + ...

  9. 转的git

    原文链接:http://blog.csdn.NET/dengjianqiang2011/article/details/9260435 如果输入$ Git remote add origin git@ ...

  10. racle undo 解析

    racle undo 解析 声明一下:关于oracle的文章基于boobooke小布老师视频,在我学习的过程中,每有体会拿来分享,虽然从理解到整理分享很耗时,但我想这样的学习是扎实的. Undo是干嘛 ...