вторник, 17 мая 2011 г.

ClojureQL: take для Oracle.

Оракл не поддерживает оператор OFFSET. Из-за этого в ClojureQL не работает оператор take. Но это можно обойти вот таким образом:

(defn oracle-take
  [tname limit]
  (-> (table (str "SELECT ROW_NUMBER() OVER (ORDER BY key ASC)"
          " AS rownumber, columns"
          " FROM " tname ")"))
      (select (where (<= :rownumber limit)))
      (project ["*"])))

Подробности на английском можно посмотреть здесь (искать по слову oracle-take).

Комментариев нет:

Отправить комментарий