未验证 提交 f8f805ce 编写于 作者: 宇泽's avatar 宇泽 提交者: GitHub

#4482 Correct the DataTypeName for Oracle. (#4704)

* #4482 Correct the `DataTypeName` for oracle

* delete blank line
上级 310e2ac3
......@@ -26,10 +26,13 @@
<sql-case id="alter_table_add_column" value="ALTER TABLE t_order ADD column4 VARCHAR(10)" />
<sql-case id="alter_table_add_columns" value="ALTER TABLE t_order ADD column4 VARCHAR(10), ADD column5 VARCHAR(10), ADD column6 VARCHAR(10)" db-types="MySQL,PostgreSQL" />
<sql-case id="alter_table_add_columns_integer_type_mysql" value="ALTER TABLE t_order ADD column4 INTEGER, ADD column5 TINYINT, ADD column6 MEDIUMINT" db-types="MySQL" />
<sql-case id="alter_table_add_columns_integer_type_oracle" value="ALTER TABLE t_order ADD (column4 INTEGER, column5 INT, column6 SMALLINT)" db-types="Oracle" />
<sql-case id="alter_table_add_columns_fixed_point_type" value="ALTER TABLE t_order ADD column4 decimal(10,2), ADD column5 NUMERIC" db-types="MySQL,PostgreSQL" />
<sql-case id="alter_table_add_columns_float_point_type_mysql" value="ALTER TABLE t_order ADD column4 FLOAT(10,2), ADD column5 DOUBLE(10,2)" db-types="MySQL" />
<sql-case id="alter_table_add_columns_float_point_type_oracle" value="ALTER TABLE t_order ADD (column4 FLOAT(10), column5 double precision)" db-types="Oracle" />
<sql-case id="alter_table_add_columns_bit_type" value="ALTER TABLE t_order ADD column4 bit" db-types="MySQL,PostgreSQL,SQLServer" />
<sql-case id="alter_table_add_columns_date_type_mysql" value="ALTER TABLE t_order ADD column4 YEAR" db-types="MySQL" />
<sql-case id="alter_table_add_columns_date_type_oracle" value="ALTER TABLE t_order ADD (column4 DATE, column5 DATETIME, column6 TIMESTAMP, column7 TIMESTAMP WITH TIME ZONE)" db-types="Oracle" />
<sql-case id="alter_table_add_columns_date_type" value="ALTER TABLE t_order ADD column4 DATE, ADD column5 DATETIME, ADD column6 TIMESTAMP, ADD column7 TIME" db-types="MySQL,PostgreSQL" />
<sql-case id="alter_table_add_columns_string_type" value="ALTER TABLE t_order ADD column4 CHAR, ADD column5 VARCHAR, ADD column6 TEXT" db-types="MySQL,PostgreSQL,SQLServer" />
<sql-case id="alter_table_add_columns_string_type_mysql" value="ALTER TABLE t_order ADD column4 BINARY, ADD column5 VARBINARY, ADD column6 TINYBLOB, ADD column7 TINYTEXT, ADD column8 BLOB, ADD column9 MEDIUMBLOB, ADD column10 MEDIUMTEXT, ADD column11 LONGBLOB, ADD column12 LONGTEXT, ADD column13 ENUM, ADD column14 SET" db-types="MySQL" />
......
......@@ -312,11 +312,15 @@ dataType
;
specialDatatype
: dataTypeName (LP_ NUMBER_ IDENTIFIER_ RP_) | NATIONAL dataTypeName VARYING? LP_ NUMBER_ RP_ | dataTypeName LP_? columnName RP_?
: dataTypeName (LP_ NUMBER_ CHAR RP_) | NATIONAL dataTypeName VARYING? LP_ NUMBER_ RP_ | dataTypeName LP_? columnName RP_?
;
dataTypeName
: IDENTIFIER_ IDENTIFIER_ | IDENTIFIER_
: CHAR | NCHAR | RAW | VARCHAR | NVARCHAR2 | LONG | LONG RAW | BLOB | CLOB | NCLOB | BINARY_FLOAT | BINARY_DOUBLE
| BOOLEAN | PLS_INTEGER | BINARY_INTEGER | INTEGER | NUMBER | NATURAL | NATURALN | POSITIVE | POSITIVEN | SIGNTYPE
| SIMPLE_INTEGER | BFILE | MLSLABEL | UROWID | DATE | TIMESTAMP | TIMESTAMP_WITH_TIME_ZONE | INTERVAL_YEAR_TO_MONTH
| INTERVAL_DAY_TO_SECOND | TIMESTAMP_WITH_LOCAL_TIME_ZONE | JSON | FLOAT | REAL | DOUBLE_PRECISION | INT | SMALLINT
| DECIMAL | NUMERIC | DEC | IDENTIFIER_
;
datetimeTypeSuffix
......
......@@ -534,3 +534,19 @@ DECIMAL
TYPE
: T Y P E
;
INT
: I N T
;
SMALLINT
: S M A L L I N T
;
NUMERIC
: N U M E R I C
;
FLOAT
: F L O A T
;
......@@ -674,3 +674,119 @@ DBA_RECYCLEBIN
FIRST
: F I R S T
;
NCHAR
: N C H A R
;
RAW
: R A W
;
VARCHAR
: V A R C H A R [2]?
;
NVARCHAR2
: N V A R C H A R [2]
;
LONG
: L O N G
;
LONG_RAW
: L O N G [ ]+ R A W
;
BLOB
: B L O B
;
CLOB
: C L O B
;
NCLOB
: N C L O B
;
BINARY_FLOAT
: B I N A R Y UL_ F L O A T
;
BINARY_DOUBLE
: B I N A R Y UL_ D O U B L E
;
PLS_INTEGER
: P L S UL_ I N T E G E R
;
BINARY_INTEGER
: B I N A R Y UL_ I N T E G E R
;
NUMBER
: N U M B E R
;
NATURALN
: N A T U R A L N
;
POSITIVE
: P O S I T I V E
;
POSITIVEN
: P O S I T I V E N
;
SIGNTYPE
: S I G N T Y P E
;
SIMPLE_INTEGER
: S I M P L E UL_ I N T E G E R
;
BFILE
: B F I L E
;
MLSLABEL
: M L S L A B E L
;
UROWID
: U R O W I D
;
TIMESTAMP_WITH_TIME_ZONE
: T I M E S T A M P [ ]+ W I T H [ ]+ T I M E [ ]+ Z O N E
;
INTERVAL_YEAR_TO_MONTH
: I N T E R V A L [ ]+ Y E A R [ ]+ T O [ ]+ M O N T H
;
INTERVAL_DAY_TO_SECOND
: I N T E R V A L [ ]+ D A Y [ ]+ T O [ ]+ S E C O N D
;
TIMESTAMP_WITH_LOCAL_TIME_ZONE
: T I M E S T A M P [ ]+ W I T H [ ]+ L O C A L [ ]+ T I M E [ ]+ Z O N E
;
JSON
: J S O N
;
DOUBLE_PRECISION
: D O U B L E [ ]+ P R E C I S I O N
;
DEC
: D E C
;
......@@ -94,6 +94,25 @@
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_integer_type_oracle">
<table name="t_order" start-index="12" stop-index="18" />
<add-column>
<column-definition type="INTEGER">
<column name="column4" />
</column-definition>
</add-column>
<add-column>
<column-definition type="INT">
<column name="column5" />
</column-definition>
</add-column>
<add-column>
<column-definition type="SMALLINT">
<column name="column6" />
</column-definition>
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_integer_type">
<table name="t_order" start-index="12" stop-index="18" />
<add-column>
......@@ -141,6 +160,20 @@
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_float_point_type_oracle">
<table name="t_order" start-index="12" stop-index="18" />
<add-column>
<column-definition type="FLOAT">
<column name="column4" />
</column-definition>
</add-column>
<add-column>
<column-definition type="double precision">
<column name="column5" />
</column-definition>
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_float_point_type_postgresql">
<table name="t_order" start-index="12" stop-index="18" />
<add-column>
......@@ -313,6 +346,30 @@
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_columns_date_type_oracle">
<table name="t_order" start-index="12" stop-index="18" />
<add-column>
<column-definition type="DATE">
<column name="column4" />
</column-definition>
</add-column>
<add-column>
<column-definition type="DATETIME">
<column name="column5" />
</column-definition>
</add-column>
<add-column>
<column-definition type="TIMESTAMP">
<column name="column6" />
</column-definition>
</add-column>
<add-column>
<column-definition type="TIMESTAMP WITH TIME ZONE">
<column name="column7" />
</column-definition>
</add-column>
</alter-table>
<alter-table sql-case-id="alter_table_add_column_with_first">
<table name="t_order" start-index="12" stop-index="18" />
<add-column>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册