## Apache 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 LIMIT10,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