0 follower

Final Class Yiisoft\Db\Oracle\DQLQueryBuilder

InheritanceYiisoft\Db\Oracle\DQLQueryBuilder » Yiisoft\Db\QueryBuilder\AbstractDQLQueryBuilder

Implements a DQL (Data Query Language) SQL statements for Oracle Server.

Method Details

Hide inherited methods

buildFrom() public method

public string buildFrom ( array|null $tables, array &$params )
$tables array|null
$params array

                public function buildFrom(?array $tables, array &$params): string
{
    if (empty($tables)) {
        return 'FROM DUAL';
    }
    return parent::buildFrom($tables, $params);
}

            
buildOrderByAndLimit() public method

public string buildOrderByAndLimit ( string $sql, array $orderBy, \Yiisoft\Db\Expression\ExpressionInterface|integer|null $limit, \Yiisoft\Db\Expression\ExpressionInterface|integer|null $offset, array &$params = [] )
$sql string
$orderBy array
$limit \Yiisoft\Db\Expression\ExpressionInterface|integer|null
$offset \Yiisoft\Db\Expression\ExpressionInterface|integer|null
$params array

                public function buildOrderByAndLimit(
    string $sql,
    array $orderBy,
    ExpressionInterface|int|null $limit,
    ExpressionInterface|int|null $offset,
    array &$params = [],
): string {
    $orderByString = $this->buildOrderBy($orderBy, $params);
    if ($orderByString !== '') {
        $sql .= $this->separator . $orderByString;
    }
    $filters = [];
    if (!empty($offset)) {
        $filters[] = 'rowNumId > '
            . ($offset instanceof ExpressionInterface ? $this->buildExpression($offset) : (string) $offset);
    }
    if ($limit !== null) {
        $filters[] = 'rownum <= '
            . ($limit instanceof ExpressionInterface ? $this->buildExpression($limit) : (string) $limit);
    }
    if (empty($filters)) {
        return $sql;
    }
    $filter = implode(' AND ', $filters);
    return <<<SQL
    WITH USER_SQL AS ($sql), PAGINATION AS (SELECT USER_SQL.*, rownum as rowNumId FROM USER_SQL)
    SELECT * FROM PAGINATION WHERE $filter
    SQL;
}

            
buildWithQueries() public method

public string buildWithQueries ( array $withQueries, array &$params )
$withQueries array
$params array

                public function buildWithQueries(array $withQueries, array &$params): string
{
    $withQueries = array_map(
        static fn(WithQuery $withQuery) => new WithQuery(
            $withQuery->query,
            $withQuery->alias,
            false,
        ),
        $withQueries,
    );
    return parent::buildWithQueries($withQueries, $params);
}

            
defaultExpressionBuilders() protected method

protected array defaultExpressionBuilders ( )

                protected function defaultExpressionBuilders(): array
{
    return [
        ...parent::defaultExpressionBuilders(),
        In::class => InBuilder::class,
        NotIn::class => InBuilder::class,
        Like::class => LikeBuilder::class,
        NotLike::class => LikeBuilder::class,
        ArrayMerge::class => ArrayMergeBuilder::class,
        Longest::class => LongestBuilder::class,
        Shortest::class => ShortestBuilder::class,
    ];
}

            
selectExists() public method

public string selectExists ( string $rawSql )
$rawSql string

                public function selectExists(string $rawSql): string
{
    return 'SELECT CASE WHEN EXISTS(' . $rawSql . ') THEN 1 ELSE 0 END AS "0" FROM DUAL';
}