yii\db\oci\Schema::findColumns PHP Method

findColumns() protected method

Collects the table column metadata.
protected findColumns ( yii\db\TableSchema $table ) : boolean
$table yii\db\TableSchema the table schema
return boolean whether the table exists
    protected function findColumns($table)
    {
        $sql = <<<SQL
SELECT a.column_name, a.data_type, a.data_precision, a.data_scale, a.data_length,
    a.nullable, a.data_default,
    com.comments as column_comment
FROM ALL_TAB_COLUMNS A
inner join ALL_OBJECTS B ON b.owner = a.owner and ltrim(B.OBJECT_NAME) = ltrim(A.TABLE_NAME)
LEFT JOIN all_col_comments com ON (A.owner = com.owner AND A.table_name = com.table_name AND A.column_name = com.column_name)
WHERE
    a.owner = :schemaName
    and b.object_type IN ('TABLE', 'VIEW', 'MATERIALIZED VIEW')
    and b.object_name = :tableName
ORDER by a.column_id
SQL;
        try {
            $columns = $this->db->createCommand($sql, [':tableName' => $table->name, ':schemaName' => $table->schemaName])->queryAll();
        } catch (\Exception $e) {
            return false;
        }
        if (empty($columns)) {
            return false;
        }
        foreach ($columns as $column) {
            if ($this->db->slavePdo->getAttribute(\PDO::ATTR_CASE) === \PDO::CASE_LOWER) {
                $column = array_change_key_case($column, CASE_UPPER);
            }
            $c = $this->createColumn($column);
            $table->columns[$c->name] = $c;
        }
        return true;
    }