public function getColumnDefinition(ColumnInterface $column)
{
$type = $column->getType();
$size = $column->getSize();
switch ($type) {
case Column::TYPE_INTEGER:
$columnSql = 'INTEGER';
break;
case Column::TYPE_DATE:
$columnSql = 'DATE';
break;
case Column::TYPE_VARCHAR:
$columnSql = 'VARCHAR2(' . $size . ')';
break;
case Column::TYPE_DECIMAL:
$scale = $column->getScale();
$columnSql = 'NUMBER(' . $size . ',' . $scale . ')';
break;
case Column::TYPE_DATETIME:
$columnSql = 'TIMESTAMP';
break;
case Column::TYPE_TIMESTAMP:
$columnSql = 'TIMESTAMP';
break;
case Column::TYPE_CHAR:
$columnSql = 'CHAR(' . $size . ')';
break;
case Column::TYPE_TEXT:
$columnSql = 'TEXT';
break;
case Column::TYPE_FLOAT:
$scale = $column->getScale();
$columnSql = 'FLOAT(' . $size . ',' . $scale . ')';
break;
case Column::TYPE_BOOLEAN:
$columnSql = 'TINYINT(1)';
break;
default:
throw new Exception('Unrecognized Oracle data type at column ' . $column->getName());
}
return $columnSql;
}