class SQL::Maker::Select::Oracle
Public Instance Methods
as_limit()
click to toggle source
Oracle
doesn’t have the LIMIT clause.
# File lib/sql/maker/select/oracle.rb, line 5 def as_limit return '' end
as_sql()
click to toggle source
Override as_sql
to emulate the LIMIT clause.
Calls superclass method
SQL::Maker::Select#as_sql
# File lib/sql/maker/select/oracle.rb, line 10 def as_sql limit = self.limit offset = self.offset if limit && offset self.add_select( "ROW_NUMBER() OVER (ORDER BY 1) R" ) end sql = super if limit sql = "SELECT * FROM ( #{sql} ) WHERE " if offset sql = sql + " R BETWEEN #{offset} + 1 AND #{limit} + #{offset}" else sql = sql + " rownum <= #{limit}" end end return sql end