Oracle OCI或OCCI中游标的DML操作

时间:2018-06-12 08:32:16

标签: oracle oci occi

我一直在尝试在执行查询后更新结果集中游标的列。换句话说,我试图通过OCI / OCCI在Oracle中实现以下类型的查询:

  

update [table] set [column_name] = [value]其中[cursor]的当前值

在MS-SQL服务器中,它可以完成,并且通过ODBC也可以在Oracle中完成。但Oracle似乎没有通过OCI或OCCI支持它。 我只在文件中找到以下摘录:

  

Oracle不支持可滚动游标的DML操作。

我不知道究竟是什么意思:这是否意味着不仅支持可滚动游标或根本不支持。

我不确定Oracle服务器是否支持使用where current of [cursor name]查询。获取游标名称的ODBC API是SQLGetCursorName(),但Oracle中没有。

示例:

env = Environment::createEnvironment();
conn = env->createConnection(username, password, connectionString);
Statement* stmt = conn->createStatement("select id, name, last_update_date from table1 where id in (1,2,3,4,5)");
ResultSet* rs = stmt->executeQuery();
while (rs->next())
{
    if (rs->getInt(1) == 3)
    {
        //Update the last_update_date column to the current timestamp
    }
}

//Resource cleanup

全部谢谢!

0 个答案:

没有答案