<?php /** * oracle driver */ class Doctrine_Connection_Oracle extends Doctrine_Connection { /** * Adds an driver-specific LIMIT clause to the query * * @param string $query * @param mixed $limit * @param mixed $offset */ public function modifyLimitQuery($query,$limit,$offset) { $e = explode("select ",strtolower($query)); $e2 = explode(" from ",$e[1]); $fields = $e2[0]; $query = "SELECT $fields FROM (SELECT rownum as linenum, $fields FROM ($query) WHERE rownum <= ($offset + $limit)) WHERE linenum >= ".++$offset; return $query; } /** * returns the next value in the given sequence * @param string $sequence * @return integer */ public function getNextID($sequence) { $stmt = $this->query("SELECT $sequence.nextval FROM dual"); $data = $stmt->fetch(PDO::FETCH_NUM); return $data[0]; } }