Я пытался обновить столбец на курсоре в наборе результатов после выполнения запроса.Другими словами, я пытаюсь добиться следующего типа запроса в Oracle через OCI / OCCI:
update [таблица] set [column_name] = [значение] где текущий [курсор]
На сервере 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
Спасибо всем!