OCCI的迭代修改

Posted focus-flying

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了OCCI的迭代修改相关的知识,希望对你有一定的参考价值。

传统的执行多行DML(INSERT、UPDATE、DELETE)时,我们是多次调用executeUpdate();
注意!当我们调用一次此函数时,则执行一次网络往返,效率低。
而 OCCI 提供了一种在单个网络往返中发送多行数据的高效机制。此为迭代修改。

初始化设置流程:

  1. 设置最大迭代次数
    Statement->setMaxIterations(int maxIterations)
  2. 设置参数最大大小(如果参数涉及到可变大小时如string,Bytes则调用此函数,以便OCCI能分配充足的内存)
    Statement->setMaxParamSize(int paramenterIndex, int maxParamSize)

实例

注意: 在每一次要迭代时调用addIteration函数,最后调用executeUpdate函数

stmt->setMaxIterations(2);
stmt->setMaxParamSize(2, 7);

stmt->setSQL("INSERT INTO basket_tab VALUES(:1, :2)");
stmt->setString(1, "Apples");   
stmt->setInt(2, 6);            
stmt->addIteration();        //增加迭代 

stmt->setString(1, "Oranges"); 
stmt->setInt(1, 4);             

stmt->executeUpdate();  //执行




以上是关于OCCI的迭代修改的主要内容,如果未能解决你的问题,请参考以下文章

使用 Oracle OCCI 回滚事务

OCCI使用

使用 OCCI oracle 在 C++ 中执行 PL/SQL 脚本

OCCI开发环境搭建(Ubuntu)

OCCI next() 和 setDataBuffer() 访问冲突

Red Hat Enterprise Linux AS4, C++ OCCI connect Oracle 9i