表示日までに古い行を削除するプロシージャを作成しています。
;WITH pv AS (
SELECT
RN = ROW_NUMBER() OVER (ORDER BY viewed DESC)
FROM
previouslyViewed
WHERE
userId = @userId
)
DELETE FROM pv WHERE RN >= 10
これはSQLServerでは機能しますが、Oracleでは機能しません。
Oracleは、WITHDELETEの組み合わせをサポートしていません。また、DELETE ORDER BYの組み合わせもサポートしていません(理論的には、同じ結果を達成するためにrownumと一緒に使用できます)。rownumを使用して一時ビューを作成し、そこから削除しようとしましたが、Oracleエラーが発生します。rownumが使用されている場合、ビューから削除できないようです。
誰かがポインタを持っていますか?