Я использую простую программу Rails + ActiveRecord, где я хочу взять записи из базы данных, где столбец "transfered_at" равен нулю, и обновить его с текущим временем.
orders_ora = Orders.where(transfered_at: nil)
orders_ora.each do |order_ora|
puts order_ora.name
order_ora.update(transfered_at: Time.now)
end
Однако, это не позволяет мне это делать. Вот ошибка, которую я получаю:
OCIError: ORA-01741: недопустимый идентификатор нулевой длины: ОБНОВЛЕНИЕ
"ORDERS" SET "TRANSFERED_AT" =: a1 ГДЕ
"ORDERS". "" NULL (ActiveRecord :: StatementInvalid)
Чего мне не хватает?
Edit: мне нужно использовать это внутри цикла, потому что я делаю другие вычисления внутри него. И формат времени, похоже, не является проблемой, потому что я пытаюсь обновить другой столбец с типом «число», и я получаю ту же ошибку.
Если я попытаюсь сделать это так:
order_ora.inspection_id = 333
order_ora.save
также выдает ту же ошибку, что и раньше.