mirror of
https://github.com/yiisoft/yii2.git
synced 2025-11-29 13:57:50 +08:00
Fixed Oracle DB type mapping. (Fixes #4)
This commit is contained in:
@@ -18,6 +18,28 @@ use yii\db\Connection;
|
|||||||
*/
|
*/
|
||||||
class QueryBuilder extends \yii\db\QueryBuilder
|
class QueryBuilder extends \yii\db\QueryBuilder
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var array mapping from abstract column types (keys) to physical column types (values).
|
||||||
|
*/
|
||||||
|
public $typeMap = [
|
||||||
|
Schema::TYPE_PK => 'NUMBER(10) NOT NULL PRIMARY KEY',
|
||||||
|
Schema::TYPE_BIGPK => 'NUMBER(20) NOT NULL PRIMARY KEY',
|
||||||
|
Schema::TYPE_STRING => 'VARCHAR2(255)',
|
||||||
|
Schema::TYPE_TEXT => 'CLOB',
|
||||||
|
Schema::TYPE_SMALLINT => 'NUMBER(5)',
|
||||||
|
Schema::TYPE_INTEGER => 'NUMBER(10)',
|
||||||
|
Schema::TYPE_BIGINT => 'NUMBER(20)',
|
||||||
|
Schema::TYPE_FLOAT => 'NUMBER',
|
||||||
|
Schema::TYPE_DECIMAL => 'NUMBER',
|
||||||
|
Schema::TYPE_DATETIME => 'TIMESTAMP',
|
||||||
|
Schema::TYPE_TIMESTAMP => 'TIMESTAMP',
|
||||||
|
Schema::TYPE_TIME => 'TIMESTAMP',
|
||||||
|
Schema::TYPE_DATE => 'DATE',
|
||||||
|
Schema::TYPE_BINARY => 'BLOB',
|
||||||
|
Schema::TYPE_BOOLEAN => 'NUMBER(1)',
|
||||||
|
Schema::TYPE_MONEY => 'NUMBER(19,4)',
|
||||||
|
];
|
||||||
|
|
||||||
private $_sql;
|
private $_sql;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -15,26 +15,11 @@ use yii\db\ColumnSchema;
|
|||||||
/**
|
/**
|
||||||
* Schema is the class for retrieving metadata from an Oracle database
|
* Schema is the class for retrieving metadata from an Oracle database
|
||||||
*
|
*
|
||||||
* @todo mapping from physical types to abstract types
|
|
||||||
*
|
|
||||||
* @author Qiang Xue <qiang.xue@gmail.com>
|
* @author Qiang Xue <qiang.xue@gmail.com>
|
||||||
* @since 2.0
|
* @since 2.0
|
||||||
*/
|
*/
|
||||||
class Schema extends \yii\db\Schema
|
class Schema extends \yii\db\Schema
|
||||||
{
|
{
|
||||||
const TYPE_PK = 'NUMBER(10) NOT NULL PRIMARY KEY';
|
|
||||||
const TYPE_STRING = 'VARCHAR2(255)';
|
|
||||||
const TYPE_TEXT = 'CLOB';
|
|
||||||
const TYPE_INTEGER = 'NUMBER(10)';
|
|
||||||
const TYPE_FLOAT = 'NUMBER';
|
|
||||||
const TYPE_DECIMAL = 'NUMBER';
|
|
||||||
const TYPE_DATETIME = 'TIMESTAMP';
|
|
||||||
const TYPE_TIMESTAMP = 'TIMESTAMP';
|
|
||||||
const TYPE_TIME = 'TIMESTAMP';
|
|
||||||
const TYPE_DATE = 'DATE';
|
|
||||||
const TYPE_BINARY = 'BLOB';
|
|
||||||
const TYPE_BOOLEAN = 'NUMBER(1)';
|
|
||||||
const TYPE_MONEY = 'NUMBER(19,4)';
|
|
||||||
/**
|
/**
|
||||||
* @inheritdoc
|
* @inheritdoc
|
||||||
*/
|
*/
|
||||||
@@ -172,7 +157,6 @@ EOD;
|
|||||||
* @internal param \yii\db\TableSchema $table ->name the table schema
|
* @internal param \yii\db\TableSchema $table ->name the table schema
|
||||||
* @return string whether the sequence exists
|
* @return string whether the sequence exists
|
||||||
*/
|
*/
|
||||||
|
|
||||||
protected function getTableSequenceName($tablename){
|
protected function getTableSequenceName($tablename){
|
||||||
|
|
||||||
$seq_name_sql="select ud.referenced_name as sequence_name
|
$seq_name_sql="select ud.referenced_name as sequence_name
|
||||||
|
|||||||
Reference in New Issue
Block a user