массовая запись в базу данных Oracle с OCCI c ++ - PullRequest
0 голосов
/ 04 февраля 2020

Я новичок в oracle базе данных с Occi.

Я хочу знать, как я могу вставить несколько строк одновременно с Occi в моем коде C ++?

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;
    }

так после создания оператора один раз, а затем вызовите функцию «insertRatedEventDetailInDB» несколько раз для нескольких строк вставки и должны выполняться через каждые 1000 раз.

...