select contract_manager.manager_id
from contract_manager
inner join contract_city
on contract_manager.contract_id = contract_city.contract_id
возвращает более одной строки, что и говорит код ошибки. Нужно каким-то образом сообщить ORACLE какие строки использовать для update. для наглядности можно добавить в подзапрос rowid записи из таблицы contract_city и далее обновлять построчно либо с помошью update накладывая ограничения на совпадение иденитифакторов rowid, либо с помощью оператора merge. Пример использования merge с идентификаторами строки rowid, я привел
Из Вашего вопроса не ясно, что хранится в таблице и что вы хотите получить?
Записи в порядке добавления, отсортированные по какому либо полю? Уточните вопрос.
В общем случае order by позволить сортировать выборку.
Нужна таблица для лога и процедура выполняющая запись лога в автономной транзакции. Стартовала процедура, выполнилась. Сколько строк обработала, сколько ошибок возникло. Многое можно придумать. А далее отдельным шагом анализируем лог. Лог всегда будет не лишним.
Станислав, этот ответ на вопрос: как принято именовать в базах данных таблицу набора состояний и таблицу записи состояний? Далее многое зависит от стандартов, принятых в конкретном сообществе. В компании, где я работаю есть внутренний документ, регламентирующий именование объектов. Справочникам добавляют D_ (dimension), а фактам F_ (fact).