Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/152.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用OCCI c+在Oracle数据库中进行大容量写入+;_C++_Oracle_Occi - Fatal编程技术网

C++ 使用OCCI c+在Oracle数据库中进行大容量写入+;

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

我是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, :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文档-