今日、テーブルの変更をチェックする SQL を見つけました。以下のようになります。
SELECT MODEL_ID, STATUS_ID, COUNT(*) as QUANTITY, ORA_ROWSCN as CHANGE_NUM
FROM DEVICE
GROUP BY MODEL_ID, STATUS_ID
DEVICE テーブルにレコードを 1 つ追加したところ、結果の QUANTITY は増加しましたが、CHANGE_NUM は変化しませんでした。
次に、ORA_ROWSCN が GROUP BY 句の一部ではないことに驚きました。これは、ORA_ROWSCN が疑似列であるためですか?
に変更ORA_ROWSCN
したところMAX(ORA_ROWSCN)
、CHANGE_NUM が期待どおりに増加しました。
では、最初の sql で取得した ORA_ROWSCN は何でしょうか? グループの最初の変更番号? そして、この用法の意味は何ですか?
PS: Oracle Database 11g を使用しています