C++ 使用OCCI c+在Oracle数据库中进行大容量写入+;
我是occi的oracle数据库新手 我想知道我如何在C++代码中用OCI在一次插入多行?< /P>C++ 使用OCCI c+在Oracle数据库中进行大容量写入+;,c++,oracle,occi,C++,Oracle,Occi,我是occi的oracle数据库新手 我想知道我如何在C++代码中用OCI在一次插入多行?< /P> int createStatement(Connection* i_pDBConn) { int retVal = SUCCESS; try { m_pDBStmt = i_pDBConn->createStatement("INSERT INTO RATED_EVENT_EPM VALUES (:1, :2
int createStatement(Connection* i_pDBConn)
{
int retVal = SUCCESS;
try
{
m_pDBStmt = i_pDBConn->createStatement("INSERT INTO RATED_EVENT_EPM VALUES (:1, :2, :3, :4, :5)");
}
catch(SQLException& ex)
{
cout<<__FILE__<<":"<<__LINE__<<" "<<ex.getMessage()<<endl;
retVal = FAILURE;
return retVal;
}
m_pDBStmt->setMaxIterations(1000);
m_pDBStmt->setMaxParamSize(1, 10);
return retVal;
}
int insertRatedEventDetailInDB(Connection* i_pDBConn, string i_string)
{
int retVal = SUCCESS;
try
{
m_pDBStmt->setString(1, i_string);
if((0 != m_pDBStmt->getCurrentIteration()) && 0 == (m_pDBStmt->getCurrentIteration()%1000))
{
m_pDBStmt->executeUpdate();
i_pDBConn->commit();
}
else
{
m_pDBStmt->addIteration();
}
}
catch(SQLException& ex)
{
cout<<__FILE__<<":"<<__LINE__<<" "<<ex.getMessage()<<endl;
retVal = FAILURE;
}
return retVal;
}
int createStatement(连接*i_pDBConn)
{
int retVal=成功;
尝试
{
m_pDBStmt=i_pDBConn->createStatement(“插入到额定的_事件_EPM值(:1,:2,:3,:4,:5)”中);
}
catch(SQLException&ex)
{
cout您似乎正在查找ExecuteAryUpdate():
如果所有数据都随setDataBuffer()方法或输出一起提供
流(即,除了setDataBuffer()或
然后有一种简化的方法
迭代执行
在这种情况下,不应调用setMaxIterations()和
setMaxParamSize()。请调用setDataBuffer()或getStream()函数
方法为每个参数提供适当大小的数组
每次迭代的数据,后跟ExecuteAryUpdate(int
arrayLength)方法。arrayLength参数指定
每个缓冲区中提供的元素。本质上,这与设置相同
arrayLength和执行语句的迭代次数
有关更多详细信息,请参阅Oracle文档-