Zeta Components - high quality PHP components

Zeta Components Manual :: Docs For Class ezcQuerySelectOracle

Database::ezcQuerySelectOracle

Class ezcQuerySelectOracle

Oracle specific implementation of ezcQuery.

This class reimplements methods where Oracle differs from the standard implementation in ezcQuery.Most notably LIMIT which is not supported directly in oracle.

Source for this file: /Database/src/sqlabstraction/implementations/query_select_oracle.php

ezcQuery
   |
   --ezcQuerySelect
      |
      --ezcQuerySelectOracle
Version:   //autogentag//

Inherited Constants

From ezcQuerySelect:
ezcQuerySelect::ASC    Sort the result ascending.
ezcQuerySelect::DESC    Sort the result descending.

Inherited Member Variables

From ezcQuerySelect
protected ezcQuerySelect::$fromString
protected ezcQuerySelect::$groupString
protected ezcQuerySelect::$havingString
protected ezcQuerySelect::$lastInvokedMethod
protected ezcQuerySelect::$limitString
protected ezcQuerySelect::$orderString
protected ezcQuerySelect::$selectString
protected ezcQuerySelect::$whereString
From ezcQuery
protected ezcQuery::$db
public ezcQuery::$expr

Method Summary

public static string getDummyTableName( )
Returns dummy table name 'dual'.
public ezcQuerySelectOracle __construct( $db )
Constructs a new ezcQueryOracle object working on the database $db.
public string alias( $name , $alias )
Returns SQL to create an alias.
public void getQuery( )
Transforms the query from the parent to provide LIMIT functionality.
public ezcQuerySelect limit( $limit , [ $offset = 0] )
Returns SQL that limits the result set.
public PDOStatement prepare( )
Handles preparing query.
public void reset( )
Resets the query object for reuse.

Inherited Methods

From ezcQuerySelect
public ezcQuerySelect ezcQuerySelect::__construct()
Constructs a new ezcQuery object.
public string ezcQuerySelect::alias()
Returns SQL to create an alias
protected ezcQuery ezcQuerySelect::doJoin()
Returns the SQL for a join or prepares $fromString for a join.
public ezcQuery ezcQuerySelect::from()
Select which tables you want to select from.
public static bool|string ezcQuerySelect::getDummyTableName()
Returns dummy table name.
public string ezcQuerySelect::getQuery()
Returns the complete select query string.
public ezcQuery ezcQuerySelect::groupBy()
Returns SQL that groups the result set by a given column.
public ezcQuery ezcQuerySelect::having()
Returns SQL that set having by a given expression.
public ezcQuery ezcQuerySelect::innerJoin()
Returns the SQL for an inner join or prepares $fromString for an inner join.
public ezcQuery ezcQuerySelect::leftJoin()
Returns the SQL for a left join or prepares $fromString for a left join.
public ezcQuerySelect ezcQuerySelect::limit()
Returns SQL that limits the result set.
public ezcQuery ezcQuerySelect::orderBy()
Returns SQL that orders the result set by a given column.
public void ezcQuerySelect::reset()
Resets the query object for reuse.
public ezcQuery ezcQuerySelect::rightJoin()
Returns the SQL for a right join or prepares $fromString for a right join.
public ezcQuery ezcQuerySelect::select()
Opens the query and selects which columns you want to return with the query.
public ezcQuery ezcQuerySelect::selectDistinct()
Opens the query and uses a distinct select on the columns you want to return with the query.
public ezcQuerySelect ezcQuerySelect::where()
Adds a where clause with logical expressions to the query.
From ezcQuery
public ezcQuery ezcQuery::__construct()
Constructs a new ezcQuery that works on the database $db and with the aliases $aliases.
public static array ezcQuery::arrayFlatten()
Returns all the elements in $array as one large single dimensional array.
public string ezcQuery::bindParam()
Binds the parameter $param to the specified variable name $placeHolder..
public string ezcQuery::bindValue()
Binds the value $value to the specified variable name $placeHolder.
public void ezcQuery::doBind()
Performs binding of variables bound with bindValue and bindParam on the statement $stmt.
protected string ezcQuery::getIdentifier()
Returns the correct identifier for the alias $alias.
protected array(string) ezcQuery::getIdentifiers()
Returns the correct identifiers for the aliases found in $aliases.
public abstract string ezcQuery::getQuery()
Returns the query string for this query object.
public bool ezcQuery::hasAliases()
Returns true if this object has aliases.
public PDOStatement ezcQuery::prepare()
Returns a prepared statement from this query which can be used for execution.
protected void ezcQuery::resetBinds()
Resets the bound values and parameters to empty.
public void ezcQuery::setAliases()
Sets the aliases $aliases for this object.
public ezcQuerySubSelect ezcQuery::subSelect()
Returns the ezcQuerySubSelect query object.
public string ezcQuery::__toString()
Return SQL string for query.

Methods

getDummyTableName

static string getDummyTableName( )

Returns dummy table name 'dual'.

Redefinition of:
Method Description
ezcQuerySelect::getDummyTableName() Returns dummy table name.

__construct

ezcQuerySelectOracle __construct( $db )

Constructs a new ezcQueryOracle object working on the database $db.

Parameters:
Name Type Description
$db PDO
Redefinition of:
Method Description
ezcQuerySelect::__construct() Constructs a new ezcQuery object.

alias

string alias( string $name , string $alias )

Returns SQL to create an alias.

This method can be used to create an alias for either a table or a column. Example:

  1.  // this will make the table users have the alias employees
  2.  // and the column user_id the alias employee_id
  3.  $q->select( $q->aliAs( 'user_id', 'employee_id' )
  4.    ->from( $q->aliAs( 'users', 'employees' ) );
Parameters:
Name Type Description
$name string Old name
$alias string Alias
Redefinition of:
Method Description
ezcQuerySelect::alias() Returns SQL to create an alias

getQuery

void getQuery( )

Transforms the query from the parent to provide LIMIT functionality.

Redefinition of:
Method Description
ezcQuerySelect::getQuery() Returns the complete select query string.

limit

ezcQuerySelect limit( string $limit , [string $offset = 0] )

Returns SQL that limits the result set.

$limit controls the maximum number of rows that will be returned. $offset controls which row that will be the first in the result set from the total amount of matching rows.

Example:

  1.  $q->select( '*' )->from( 'table' )
  2.                   ->limit( 10, 0 );

Oracle does not support the LIMIT keyword. A complete rewrite of the query is neccessary. Queries will be rewritten like this:

  1.  Original query in MySQL syntax:
  2.  SELECT * FROM table LIMIT 10, 5
  3.  The corresponding Oracle query:
  4.  SELECT * FROM (SELECT a.*, ROWNUM rn FROM (SELECT * FROM table) a WHERE rownum <= 15) WHERE rn >= 6;
Even though the Oracle query is three times as long it performs about the same as mysql on small result sets and a bit better on large result sets.

Note that you will not get a result if you call buildLimit() when using the oracle database.

Parameters:
Name Type Description
$limit string integer expression
$offset string integer expression
Redefinition of:
Method Description
ezcQuerySelect::limit() Returns SQL that limits the result set.

prepare

PDOStatement prepare( )

Handles preparing query.

Overrides ezcQuery->prepare()

Adds "FROM dual" to the select if no FROM clause specified i.e. fixes queries like "SELECT 1+1" to work in Oracle.

Redefinition of:
Method Description
ezcQuery::prepare() Returns a prepared statement from this query which can be used for execution.

reset

void reset( )

Resets the query object for reuse.

Redefinition of:
Method Description
ezcQuerySelect::reset() Resets the query object for reuse.
Documentation generated by phpDocumentor 1.4.3