Подтвердить что ты не робот

Данные, полученные в другом/одном сеансе, не могут обновить строку (Oracle SQL Developer)

Я иногда получаю эту ошибку, когда пытаюсь обновить запись через сетку.

One error saving changes to table "SCHEMA"."TABLENAME":
Row 3: Data got committed in another/same session, cannot update row.

Посмотрел на OTN, но решения еще не было.

Пробовал отключить параметр Опубликовать изменения при изменении строки, но все равно не повезло.

Существует известное решение для установки поля NULL через рабочий лист SQL, но это, безусловно, боль.

4b9b3361

Ответ 1

Возможно, ваша таблица создана с помощью NOROWDEPENDENCIES, поэтому отслеживание зависимостей на уровне строк отключено, а SQL Developer настроен на "Использовать ORA_ROWSCN для операторов вставки и обновления DataEditor".

Отмените выбор опции ORA_ROWSCN или заново создайте таблицу с помощью ROWDEPENDENCIES.

Ответ 2

Просто запустите простую команду update и установите для cplumn значение null. Затем попробуйте обновить свою реальную ценность. Это определенно будет работать.

Ответ 3

Я столкнулся с этой проблемой и при работе с хранимой процедурой. Мое решение упало в ряд с приведенными выше ответами. Прежде чем обновлять строку, которая мне нужна, я хотел добавить строку обновления, которая сначала обновила столбец до нуля. Следующая строка затем обновила столбец до значения, которое я хотел. Я сделал это в дополнение к снятию флажка для ORA_ROWSCN.

UPDATE TEST_LOCATION SET STATUS = NULL WHERE FULL_NAME = SITE_FULL_NAME;

UPDATE TEST_LOCATION SET STATUS = CAST (STATUS_IN AS INTEGER) WHERE FULL_NAME = SITE_FULL_NAME;