Есть несколько проблем с подобным подходом.
Во-первых, если ваш стол не построен с rowdependencies
, то ora_rowscn
хранится на уровне блока, а не на уровне строки. Во-вторых, функция scn_to_timestamp
может предоставлять только сопоставление для относительно недавних значений SCN, возможно, в лучшем случае, на несколько недель. В-третьих, само отображение не является особенно точным - это будет +/- 3 секунды во всех версиях 11g, я полагаю. Точность может отличаться в других версиях Oracle. Объединяя их, маловероятно, что вы можете использовать временную метку, которая обеспечивает функцию оптимистической блокировки.
Использование только ORA_ROWSCN
, но оно по-прежнему имеет issues if you're trying to implement optimistic locking. ORA_ROWSCN
может сделать потерянные обновления маловероятными в вашей среде, чтобы быть приемлемыми, но это не лучший подход для реализации оптимистической блокировки.
Я не понимаю, о чем вы спрашиваете в вопросе 1. Я не понимаю, что метка времени вы говорите в вопросе 2. –
@JustinCave отредактирован –