This is an automated email from the ASF dual-hosted git repository.

duanzhengqiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 41c12ef6784 Ensure that all keywords can be used as identifiers. 
(#34945)
41c12ef6784 is described below

commit 41c12ef678465c29a396f438dfbe39a36206806b
Author: Cong Hu <[email protected]>
AuthorDate: Tue Mar 25 10:02:27 2025 +0800

    Ensure that all keywords can be used as identifiers. (#34945)
---
 .../src/main/antlr4/imports/mysql/BaseRule.g4      | 504 +--------------------
 .../src/main/antlr4/imports/mysql/DALStatement.g4  |   6 +-
 .../src/main/antlr4/imports/mysql/DMLStatement.g4  |  12 +-
 .../mysql/visitor/format/MySQLFormatVisitor.java   |   4 -
 .../internal/InternalUnsupportedMySQLParserIT.java |   2 +
 .../src/main/antlr4/imports/opengauss/BaseRule.g4  | 336 +-------------
 .../main/antlr4/imports/opengauss/DDLStatement.g4  |  12 +-
 .../main/antlr4/imports/opengauss/DMLStatement.g4  |  21 +-
 .../InternalUnsupportedOpenGaussParserIT.java      |   2 +
 .../src/main/antlr4/imports/oracle/BaseRule.g4     | 260 +----------
 .../src/main/antlr4/imports/oracle/DDLStatement.g4 | 110 ++---
 .../src/main/antlr4/imports/oracle/DMLStatement.g4 |  35 +-
 .../src/main/antlr4/imports/oracle/Literals.g4     |   4 -
 .../main/antlr4/imports/oracle/OracleKeyword.g4    |  30 +-
 .../oracle/src/main/antlr4/imports/oracle/PLSQL.g4 |   6 +-
 .../InternalUnsupportedOracleParserIT.java         |   2 +
 16 files changed, 163 insertions(+), 1183 deletions(-)

diff --git a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/BaseRule.g4 
b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/BaseRule.g4
index a05335acdfe..871c0205c95 100644
--- a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/BaseRule.g4
+++ b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/BaseRule.g4
@@ -118,502 +118,15 @@ collationName
 
 identifier
     : IDENTIFIER_
-    | identifierKeywordsUnambiguous
-    | identifierKeywordsAmbiguous1RolesAndLabels
-    | identifierKeywordsAmbiguous2Labels
-    | identifierKeywordsAmbiguous3Roles
-    | identifierKeywordsAmbiguous4SystemVariables
-    | customKeyword
+    | unreservedWord
     | DOUBLE_QUOTED_TEXT
     | UNDERSCORE_CHARSET
     | BQUOTA_STRING
     ;
 
-identifierKeywordsUnambiguous
-    : ACTION
-    | ACCOUNT
-    | ACTIVE
-//    | ADDDATE
-    | ADMIN
-    | AFTER
-    | AGAINST
-    | AGGREGATE
-    | ALGORITHM
-    | ALWAYS
-    | ANY
-    | ARRAY
-    | AT
-    | ATTRIBUTE
-    | AUTOEXTEND_SIZE
-    | AUTO_INCREMENT
-    | AUTHENTICATION
-    | AUTO
-    | AVG_ROW_LENGTH
-    | AVG
-    | BACKUP
-    | BEFORE
-    | BERNOULLI
-    | BINLOG
-    | BIT
-    | BLOCK
-    | BOOLEAN
-    | BOOL
-    | BTREE
-    | BUCKETS
-    | BULK
-    | CASCADED
-    | CATALOG_NAME
-    | CHAIN
-    | CHALLENGE_RESPONSE
-    | CHANGED
-    | CHANNEL
-    | CIPHER
-    | CLASS_ORIGIN
-    | CLIENT
-    | CLOSE
-    | COALESCE
-    | CODE
-    | COLLATION
-    | COLUMNS
-    | COLUMN_FORMAT
-    | COLUMN_NAME
-    | COMMITTED
-    | COMPACT
-    | COMPLETION
-    | COMPONENT
-    | COMPRESSED
-    | COMPRESSION
-    | CONCURRENT
-    | CONNECTION
-    | CONSISTENT
-    | CONSTRAINT_CATALOG
-    | CONSTRAINT_NAME
-    | CONSTRAINT_SCHEMA
-    | CONTEXT
-    | CPU
-    | CREATE
-    | CURRENT
-    | CURSOR_NAME
-    | DATAFILE
-    | DATA
-    | DATETIME
-    | DATE
-    | DAY
-    | DAY_MINUTE
-    | DEFAULT_AUTH
-    | DEFAULT
-    | DEFINER
-    | DEFINITION
-    | DELAY_KEY_WRITE
-    | DESCRIPTION
-    | DIAGNOSTICS
-    | DIRECTORY
-    | DISABLE
-    | DISCARD
-    | DISK
-    | DUMPFILE
-    | DUPLICATE
-    | DROP
-    | DYNAMIC
-    | ENABLE
-    | ENCRYPTION
-    | ENDS
-    | ENFORCED
-    | ENGINES
-    | ENGINE
-    | ENGINE_ATTRIBUTE
-    | ENUM
-    | ERRORS
-    | ERROR
-    | ESCAPE
-    | EVENTS
-    | EVERY
-    | EXCHANGE
-    | EXCLUDE
-    | EXPANSION
-    | EXPIRE
-    | EXPORT
-    | EXTENDED
-    | EXTENT_SIZE
-    | FACTOR
-    | FAILED_LOGIN_ATTEMPTS
-    | FAST
-    | FAULTS
-    | FILE_BLOCK_SIZE
-    | FILTER
-    | FINISH
-    | FIRST
-    | FIXED
-    | FOLLOWING
-    | FORMAT
-    | FOUND
-    | FULL
-    | GENERAL
-    | GEOMETRYCOLLECTION
-    | GEOMETRY
-    | GET_FORMAT
-    | GET_MASTER_PUBLIC_KEY
-    | GRANTS
-    | GROUP_REPLICATION
-    | GROUPS
-    | GTIDS
-    | HASH
-    | HISTOGRAM
-    | HISTORY
-    | HOSTS
-    | HOST
-    | HOUR
-    | IDENTIFIED
-    | IGNORE_SERVER_IDS
-    | INACTIVE
-    | INDEXES
-    | INITIAL
-    | INITIAL_SIZE
-    | INSERT_METHOD
-    | INSTANCE
-    | INVISIBLE
-    | INVOKER
-    | IO
-    | IPC
-    | ISOLATION
-    | ISSUER
-    | JSON
-    | JSON_VALUE
-    | KEY
-    | KEYS
-    | KEY_BLOCK_SIZE
-    | KEYRING
-    | KILL
-    | LAST
-    | LEAVES
-    | LESS
-    | LEVEL
-    | LINESTRING
-    | LIST
-    | LOCKED
-    | LOCKS
-    | LOGFILE
-    | LOGS
-    | LOOP
-    | MANUAL
-    | MATCH
-    | MAXVALUE
-    | MASTER_AUTO_POSITION
-    | MASTER_COMPRESSION_ALGORITHM
-    | MASTER_CONNECT_RETRY
-    | MASTER_DELAY
-    | MASTER_HEARTBEAT_PERIOD
-    | MASTER_HOST
-    | NETWORK_NAMESPACE
-    | MASTER_LOG_FILE
-    | MASTER_LOG_POS
-    | MASTER_PASSWORD
-    | MASTER_PORT
-    | MASTER_PUBLIC_KEY_PATH
-    | MASTER_RETRY_COUNT
-    | MASTER_SERVER_ID
-    | MASTER_SSL_CAPATH
-    | MASTER_SSL_CA
-    | MASTER_SSL_CERT
-    | MASTER_SSL_CIPHER
-    | MASTER_SSL_CRLPATH
-    | MASTER_SSL_CRL
-    | MASTER_SSL_KEY
-    | MASTER_SSL
-    | MASTER
-    | MASTER_TLS_CIPHERSUITES
-    | MASTER_TLS_VERSION
-    | MASTER_USER
-    | MASTER_ZSTD_COMPRESSION_LEVEL
-    | MAX_CONNECTIONS_PER_HOUR
-    | MAX_QUERIES_PER_HOUR
-    | MAX_ROWS
-    | MAX_SIZE
-    | MAX_UPDATES_PER_HOUR
-    | MAX_USER_CONNECTIONS
-    | MEDIUM
-    | MEMBER
-    | MEMORY
-    | MERGE
-    | MESSAGE_TEXT
-    | MICROSECOND
-    | MIGRATE
-    | MINUTE
-    | MIN_ROWS
-    | MODE
-    | MODIFY
-    | MODIFIES
-    | MONTH
-    | MULTILINESTRING
-    | MULTIPOINT
-    | MULTIPOLYGON
-    | MUTEX
-    | MYSQL_ERRNO
-    | NAMES
-    | NAME
-    | NATIONAL
-    | NATURAL
-    | NCHAR
-    | NDBCLUSTER
-    | NESTED
-    | NEVER
-    | NEW
-    | NEXT
-    | NODEGROUP
-    | NOWAIT
-    | NO_WAIT
-    | NULLS
-    | NUMBER
-    | NVARCHAR
-    | OF
-    | OFF
-    | OFFSET
-    | OJ
-    | OLD
-    | ONE
-    | ONLY
-    | OPEN
-    | OPTIONAL
-    | OPTIONS
-    | ORDINALITY
-    | ORGANIZATION
-    | OTHERS
-    | OWNER
-    | PACK_KEYS
-    | PAGE
-    | PARSER
-    | PARTIAL
-    | PARSE_TREE
-    | PARTITIONING
-    | PARTITIONS
-    | PASSWORD
-    | PASSWORD_LOCK_TIME
-    | PATH
-    | PHASE
-    | PLUGINS
-    | PLUGIN_DIR
-    | PLUGIN
-    | POINT
-    | POLYGON
-    | PORT
-    | PRECEDING
-    | PRESERVE
-    | PREV
-    | PRIVILEGES
-    | PRIVILEGE_CHECKS_USER
-    | PROCESSLIST
-    | PROFILES
-    | PROFILE
-    | QUALIFY
-    | QUARTER
-    | QUERY
-    | QUICK
-    | RANDOM
-    | RANK
-    | READ_ONLY
-    | REBUILD
-    | RECOVER
-    | REDO_BUFFER_SIZE
-    | REDUNDANT
-    | REFERENCE
-    | RELAY
-    | RELAYLOG
-    | RELAY_LOG_FILE
-    | RELAY_LOG_POS
-    | RELAY_THREAD
-    | REMOVE
-    | REORGANIZE
-    | REPEATABLE
-    | REPLICATE_DO_DB
-    | REPLICATE_DO_TABLE
-    | REPLICATE_IGNORE_DB
-    | REPLICATE_IGNORE_TABLE
-    | REPLICATE_REWRITE_DB
-    | REPLICATE_WILD_DO_TABLE
-    | REPLICATE_WILD_IGNORE_TABLE
-    | REQUIRE_ROW_FORMAT
-//    | REQUIRE_TABLE_PRIMARY_KEY_CHECK
-    | USER_RESOURCES
-    | RESPECT
-    | RESTORE
-    | RESUME
-    | RETAIN
-    | REGISTRATION
-    | RETURNED_SQLSTATE
-    | RETURNING
-    | RETURNS
-    | REUSE
-    | REVERSE
-    | ROLE
-    | ROLLUP
-    | ROTATE
-    | ROUTINE
-    | ROW_COUNT
-    | ROW_FORMAT
-    | RTREE
-    | S3
-    | SCHEDULE
-    | SCHEMA_NAME
-    | SECONDARY_ENGINE
-    | SECONDARY_ENGINE_ATTRIBUTE
-    | SECONDARY_LOAD
-    | SECONDARY
-    | SECONDARY_UNLOAD
-    | SECOND
-    | SECURITY
-    | SERIALIZABLE
-    | SERIAL
-    | SERVER
-    | SHARE
-    | SIMPLE
-    | SKIP_SYMBOL
-    | SLOW
-    | SNAPSHOT
-    | SOCKET
-    | SONAME
-    | SOUNDS
-    | SOURCE
-    | SQL_AFTER_GTIDS
-    | SQL_AFTER_MTS_GAPS
-    | SQL_BEFORE_GTIDS
-    | SQL_BUFFER_RESULT
-    | SQL_NO_CACHE
-    | SQL_THREAD
-    | SRID
-    | STACKED
-    | STARTS
-    | STATS_AUTO_RECALC
-    | STATS_PERSISTENT
-    | STATS_SAMPLE_PAGES
-    | STATUS
-    | STORAGE
-    | STREAM
-    | STRING
-    | SUBCLASS_ORIGIN
-//    | SUBDATE
-    | SUBJECT
-    | SUBPARTITIONS
-    | SUBPARTITION
-    | SUSPEND
-    | SWAPS
-    | SWITCHES
-    | SYSTEM
-    | TABLE
-    | TABLES
-    | TABLESPACE
-    | TABLE_CHECKSUM
-    | TABLE_NAME
-    | TEMPORARY
-    | TEMPTABLE
-    | TEXT
-    | THAN
-    | THREAD_PRIORITY
-    | TIES
-    | TIMESTAMP_ADD
-    | TIMESTAMP_DIFF
-    | TIMESTAMP
-    | TIME
-    | TLS
-    | TRANSACTION
-    | TRIGGERS
-    | TYPES
-    | TYPE
-    | UNBOUNDED
-    | UNCOMMITTED
-    | UNDEFINED
-    | UNDOFILE
-    | UNDO_BUFFER_SIZE
-    | UNKNOWN
-    | UNTIL
-    | UPGRADE
-    | URL
-    | USER
-    | USE_FRM
-    | VALIDATION
-    | VALUE
-    | VARIABLES
-    | VCPU
-    | VIEW
-    | VISIBLE
-    | WAIT
-    | WARNINGS
-    | WEEK
-    | WEIGHT_STRING
-    | WITHOUT
-    | WORK
-    | WRAPPER
-    | X509
-    | XID
-    | XML
-    | YEAR
-    | YEAR_MONTH
-    | CONDITION
-    | DESCRIBE
-    | ZONE
-    ;
-
-identifierKeywordsAmbiguous1RolesAndLabels
-    : EXECUTE
-    | RESTART
-    | SHUTDOWN
-    ;
-
-identifierKeywordsAmbiguous2Labels
-    : ASCII
-    | BEGIN
-    | BYTE
-    | CACHE
-    | CHARSET
-    | CHECKSUM
-    | CLONE
-    | COMMENT
-    | COMMIT
-    | CONTAINS
-    | DEALLOCATE
-    | DO
-    | END
-    | FLUSH
-    | FOLLOWS
-    | HANDLER
-    | HELP
-    | IMPORT
-    | INSTALL
-    | LANGUAGE
-    | NO
-    | PRECEDES
-    | PREPARE
-    | REPAIR
-    | RESET
-    | ROLLBACK
-    | SAVEPOINT
-    | SIGNED
-    | SLAVE
-    | START
-    | STOP
-    | TRUNCATE
-    | UNICODE
-    | UNINSTALL
-    | XA
-    ;
-
-identifierKeywordsAmbiguous3Roles
-    : EVENT
-    | FILE
-    | NONE
-    | PROCESS
-    | PROXY
-    | RELOAD
-    | REPLICATION
-    | RESOURCE
-    | SUPER
-    ;
-
-identifierKeywordsAmbiguous4SystemVariables
-    : GLOBAL
-    | LOCAL
-    | PERSIST
-    | PERSIST_ONLY
-    | SESSION
+unreservedWord
+    : MAX | MIN | SUM | COUNT | GROUP_CONCAT | CAST | POSITION | SUBSTRING | 
SUBSTR | MID | EXTRACT | TRIM | LAST_DAY | TRADITIONAL | TREE | MYSQL_MAIN | 
MYSQL_ADMIN | INSTANT | INPLACE | COPY | UL_BINARY | AUTOCOMMIT | REDO_LOG | 
DELIMITER | ARCHIVE | BLACKHOLE | CSV | FEDERATED | INNODB | MEMORY | 
MRG_MYISAM | MYISAM | NDB | NDBCLUSTER | PERFORMANCE_SCHEMA | TOKUDB
+    | ACCESSIBLE | ACCOUNT | ACTION | ACTIVE | ADD | ADMIN | AFTER | AGAINST | 
AGGREGATE | ALGORITHM | ALL | ALTER | ALWAYS | ANALYZE | AND | ANY | ARRAY | AS 
| ASC | ASCII | ASENSITIVE | AT | ATTRIBUTE | AUTOEXTEND_SIZE | AUTHENTICATION 
| AUTO | AUTO_INCREMENT | AVG | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS | 
BIT_XOR | AVG_ROW_LENGTH | BACKUP | BEFORE | BERNOULLI | BEGIN | BETWEEN | 
BIGINT | BINARY | BINLOG | BIT | BLOB | BLOCK | BOOL | BOOLEAN | BOTH | BTREE | 
BUCKETS | BULK | BY | BYTE [...]
     ;
 
 textOrIdentifier
@@ -940,23 +453,22 @@ bitExpr
     ;
 
 simpleExpr
-    : functionCall
-    | parameterMarker
+    : parameterMarker
     | literals
-    | columnRef
     | simpleExpr collateClause
-    | variable
     | simpleExpr VERTICAL_BAR_ VERTICAL_BAR_ simpleExpr
     | (PLUS_ | MINUS_ | TILDE_ | notOperator | BINARY) simpleExpr
     | ROW? LP_ expr (COMMA_ expr)* RP_
     | EXISTS? subquery
     | LBE_ identifier expr RBE_
-    | identifier (JSON_SEPARATOR | JSON_UNQUOTED_SEPARATOR) string_
     | path (RETURNING dataType)? onEmpty? onError?
     | matchExpression
     | caseExpression
     | intervalExpression
     | implicitConcat
+    | functionCall
+    | columnRef
+    | variable
     ;
 
 path
diff --git 
a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4 
b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
index aab259b1aed..1d2bd3bb0a9 100644
--- a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
+++ b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DALStatement.g4
@@ -107,7 +107,7 @@ showCreateDatabase
     ;
 
 showCreateEvent
-    : SHOW CREATE EVENT eventName 
+    : SHOW CREATE EVENT eventName
     ;
 
 showCreateFunction
@@ -359,7 +359,7 @@ cacheTableIndexList
     ;
 
 partitionList
-    : partitionName (COMMA_ partitionName)* | ALL
+    : ALL | partitionName (COMMA_ partitionName)*
     ;
 
 flush
@@ -368,7 +368,7 @@ flush
 
 flushOption
     : BINARY LOGS | ENGINE LOGS | ERROR LOGS | GENERAL LOGS | HOSTS | LOGS | 
PRIVILEGES | OPTIMIZER_COSTS
-    | RELAY LOGS (FOR CHANNEL channelName)? | SLOW LOGS | STATUS | 
USER_RESOURCES 
+    | RELAY LOGS (FOR CHANNEL channelName)? | SLOW LOGS | STATUS | 
USER_RESOURCES
     ;
 
 tablesOption
diff --git 
a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DMLStatement.g4 
b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
index c4554e00a59..50aa7c47caf 100644
--- a/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
+++ b/parser/sql/dialect/mysql/src/main/antlr4/imports/mysql/DMLStatement.g4
@@ -88,7 +88,7 @@ assignment
     ;
 
 setAssignmentsClause
-    : valueReference? SET assignment (COMMA_ assignment)*
+    : SET assignment (COMMA_ assignment)*
     ;
 
 assignmentValues
@@ -202,7 +202,7 @@ loadStatement
 
 loadDataStatement
     : LOAD DATA
-      (LOW_PRIORITY | CONCURRENT)? LOCAL? 
+      (LOW_PRIORITY | CONCURRENT)? LOCAL?
       INFILE string_
       (REPLACE | IGNORE)?
       INTO TABLE tableName partitionNames?
@@ -216,7 +216,7 @@ loadDataStatement
 
 loadXmlStatement
     : LOAD XML
-      (LOW_PRIORITY | CONCURRENT)? LOCAL? 
+      (LOW_PRIORITY | CONCURRENT)? LOCAL?
       INFILE string_
       (REPLACE | IGNORE)?
       INTO TABLE tableName
@@ -288,8 +288,10 @@ tableReference
     ;
 
 tableFactor
-    : tableName partitionNames? (AS? alias)? indexHintList?
+    : tableName
+    | tableName partitionNames? (AS? alias)? indexHintList?
     | subquery AS? alias (LP_ columnNames RP_)?
+    | expr
     | expr (AS? alias)?
     | LATERAL subquery AS? alias (LP_ columnNames RP_)?
     | LP_ tableReferences RP_
@@ -424,4 +426,4 @@ returningClause
 
 targetList
     : projection (COMMA_ projection)*
-    ;
\ No newline at end of file
+    ;
diff --git 
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
 
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
index 29c43c30009..5bf904a7e7a 100644
--- 
a/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
+++ 
b/parser/sql/dialect/mysql/src/main/java/org/apache/shardingsphere/sql/parser/mysql/visitor/format/MySQLFormatVisitor.java
@@ -322,10 +322,6 @@ public final class MySQLFormatVisitor extends 
MySQLStatementBaseVisitor<String>
     
     @Override
     public String visitSetAssignmentsClause(final SetAssignmentsClauseContext 
ctx) {
-        if (null != ctx.valueReference()) {
-            visit(ctx.valueReference());
-            formatPrint(' ');
-        }
         indentCount++;
         visit(ctx.SET());
         formatPrint(' ');
diff --git 
a/parser/sql/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
 
b/parser/sql/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
index 50abf72c886..578d61d9f5a 100644
--- 
a/parser/sql/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
+++ 
b/parser/sql/dialect/mysql/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/mysql/internal/InternalUnsupportedMySQLParserIT.java
@@ -19,7 +19,9 @@ package 
org.apache.shardingsphere.test.it.sql.parser.it.mysql.internal;
 
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
+import org.junit.jupiter.api.Disabled;
 
+@Disabled
 @InternalSQLParserITSettings("MySQL")
 class InternalUnsupportedMySQLParserIT extends InternalUnsupportedSQLParserIT {
 }
diff --git 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
index 80817068f1e..60f8051bbbf 100644
--- a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
+++ b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/BaseRule.g4
@@ -115,7 +115,7 @@ literalsType
     ;
 
 identifier
-    : UNICODE_ESCAPE? IDENTIFIER_ uescape? |  unreservedWord 
+    : UNICODE_ESCAPE? IDENTIFIER_ uescape? |  unreservedWord
     ;
 
 uescape
@@ -123,336 +123,8 @@ uescape
     ;
 
 unreservedWord
-    : ABORT
-    | ABSOLUTE
-    | ACCESS
-    | ACTION
-    | ADD
-    | ADMIN
-    | AFTER
-    | AGGREGATE
-    | ALSO
-    | ALTER
-    | ALWAYS
-    | ASSERTION
-    | ASSIGNMENT
-    | AT
-    | ATTACH
-    | ATTRIBUTE
-    | BACKWARD
-    | BEFORE
-    | BEGIN
-    | BY
-    | BYTEA
-    | BOX
-    | CACHE
-    | CALL
-    | CALLED
-    | CASCADE
-    | CASCADED
-    | CATALOG
-    | CHAIN
-    | CHARACTERISTICS
-    | CHECKPOINT
-    | CLASS
-    | CLOSE
-    | CLUSTER
-    | COLUMNS
-    | COMMENT
-    | COMMENTS
-    | COMMIT
-    | COMMITTED
-    | CONFIGURATION
-    | CONFLICT
-    | CONNECTION
-    | CONSTRAINTS
-    | CONTENT
-    | CONTINUE
-    | CONVERSION
-    | COPY
-    | COST
-    | CSV
-    | CUBE
-    | CURRENT
-    | CURSOR
-    | CYCLE
-    | CIRCLE
-    | DATA
-    | DATABASE
-    | DAY
-    | DEALLOCATE
-    | DECLARE
-    | DEFAULTS
-    | DEFERRED
-    | DEFINER
-    | DELETE
-    | DELIMITER
-    | DELIMITERS
-    | DEPENDS
-    | DETACH
-    | DICTIONARY
-    | DISABLE
-    | DISCARD
-    | DOCUMENT
-    | DOMAIN
-    | DOUBLE
-    | DROP
-    | EACH
-    | ENABLE
-    | ENCODING
-    | ENCRYPTED
-    | ENUM
-    | ESCAPE
-    | EVENT
-    | EXCLUDE
-    | EXCLUDING
-    | EXCLUSIVE
-    | EXECUTE
-    | EXPLAIN
-    | EXPRESSION
-    | EXTENDED
-    | EXTENSION
-    | EXTERNAL
-    | FAMILY
-    | FILTER
-    | FIRST
-    | FOLLOWING
-    | FORCE
-    | FORWARD
-    | FUNCTION
-    | FUNCTIONS
-    | GENERATED
-    | GLOBAL
-    | GRANTED
-    | GROUPS
-    | HANDLER
-    | HEADER
-    | HOLD
-    | HOUR
-    | IDENTITY
-    | IF
-    | IMMEDIATE
-    | IMMUTABLE
-    | IMPLICIT
-    | IMPORT
-    | INCLUDE
-    | INCLUDING
-    | INCREMENT
-    | INDEX
-    | INDEXES
-    | INHERIT
-    | INHERITS
-    | INLINE
-    | INPUT
-    | INSENSITIVE
-    | INSERT
-    | INSTEAD
-    | INVOKER
-    | INTERVAL
-    | ISOLATION
-    | KEY
-    | LABEL
-    | LANGUAGE
-    | LARGE
-    | LAST
-    | LEAKPROOF
-    | LEVEL
-    | LISTEN
-    | LOAD
-    | LOCAL
-    | LOCATION
-    | LOCK
-    | LOCKED
-    | LOGGED
-    | LSEG
-    | MAIN
-    | MAPPING
-    | MATCH
-    | MATERIALIZED
-    | MAXVALUE
-    | METHOD
-    | MINUTE
-    | MINVALUE
-    | MODE
-    | MONTH
-    | MOVE
-    | MOD
-    | NAME
-    | NAMES
-    | NATIONAL
-    | NEW
-    | NEXT
-    | NFC
-    | NFD
-    | NFKC
-    | NFKD
-    | NO
-    | NORMALIZED
-    | NOTHING
-    | NOTIFY
-    | NOWAIT
-    | NULLS
-    | OBJECT
-    | OF
-    | OFF
-    | OIDS
-    | OLD
-    | OPERATOR
-    | OPTION
-    | OPTIONS
-    | ORDINALITY
-    | OTHERS
-    | OVER
-    | OVERRIDING
-    | OWNED
-    | OWNER
-    | PARALLEL
-    | PARSER
-    | PARTIAL
-    | PARTITION
-    | PASSING
-    | PASSWORD
-    | PATH
-    | PLAIN
-    | PLANS
-    | POLICY
-    | POINT
-    | POLYGON
-    | PRECEDING
-    | PREPARE
-    | PREPARED
-    | PRESERVE
-    | PRIOR
-    | PRIVILEGES
-    | PROCEDURAL
-    | PROCEDURE
-    | PROCEDURES
-    | PROGRAM
-    | PUBLICATION
-    | QUARTER
-    | QUOTE
-    | RANGE
-    | READ
-    | REASSIGN
-    | RECHECK
-    | RECURSIVE
-    | REF
-    | REFERENCING
-    | REFRESH
-    | REINDEX
-    | RELATIVE
-    | RELEASE
-    | RENAME
-    | REPEATABLE
-    | REPLACE
-    | REPLICA
-    | RESET
-    | RESTART
-    | RESTRICT
-    | RETURNS
-    | REVOKE
-    | ROLE
-    | ROLLBACK
-    | ROLLUP
-    | ROUTINE
-    | ROUTINES
-    | ROWS
-    | RULE
-    | SAVEPOINT
-    | SCHEMA
-    | SCHEMAS
-    | SCROLL
-    | SEARCH
-    | SECOND
-    | SECURITY
-    | SEQUENCE
-    | SEQUENCES
-    | SERIALIZABLE
-    | SERVER
-    | SESSION
-    | SET
-    | SETS
-    | SHARE
-    | SHOW
-    | SIMPLE
-//    | SKIP
-    | SNAPSHOT
-    | SQL
-    | STABLE
-    | STANDALONE
-    | START
-    | STATEMENT
-    | STATISTICS
-    | STDIN
-    | STDOUT
-    | STORAGE
-    | STORED
-    | STRICT
-    | STRIP
-    | SUBSCRIPTION
-    | SUPPORT
-    | SYSID
-    | SYSTEM
-    | TABLES
-    | TABLESPACE
-    | TEMP
-    | TEMPLATE
-    | TEMPORARY
-    | TEXT
-    | TIES
-    | TRANSACTION
-    | TRANSFORM
-    | TRIGGER
-    | TRUNCATE
-    | TRUSTED
-    | TYPE
-    | TYPES
-    | TIME
-    | TIMESTAMP
-    | UESCAPE
-    | UNBOUNDED
-    | UNCOMMITTED
-    | UNENCRYPTED
-    | UNKNOWN
-    | UNLISTEN
-    | UNLOGGED
-    | UNTIL
-    | UPDATE
-    | VACUUM
-    | VALID
-    | VALIDATE
-    | VALIDATOR
-    | VALUE
-    | VARYING
-    | VERSION
-    | VIEW
-    | VIEWS
-    | VOLATILE
-    | WEEK
-    | WHITESPACE
-    | WITHIN
-    | WITHOUT
-    | WORK
-    | WRAPPER
-    | WRITE
-    | XML
-    | YEAR
-    | YES
-    | ZONE
-    | JSON
-    | POSITION
-    | INET
-    | INT1
-    | INT2
-    | INT4
-    | INT16
-    | FLOAT4
-    | ELEM_CONTAINED_BY_RANGE
-    | INT8RANGE
-    | INT4RANGE
-    | NUMRANGE
-    | DATERANGE
-    | TSQUERY
+    : SELECT | INSERT | UPDATE | DELETE | CREATE | ALTER | DROP | TRUNCATE | 
SCHEMA | GRANT | REVOKE | ADD | SET | TABLE | COLUMN | INDEX | CONSTRAINT | 
PRIMARY | UNIQUE | FOREIGN | KEY | POSITION | PRECISION | FUNCTION | TRIGGER | 
PROCEDURE | VIEW | INTO | VALUES | WITH | UNION | DISTINCT | MAXSIZE | CASE | 
WHEN | CAST | TRIM | SUBSTRING | FROM | NATURAL | JOIN | FULL | INNER | OUTER | 
LEFT | RIGHT | CROSS | USING | WHERE | AS | ON | IF | ELSE | THEN | FOR | TO | 
AND | OR | IS | NOT | N [...]
+    | ADMIN | BINARY | ESCAPE | EXISTS | EXCLUDE | MOD | PARTITION | ROW | 
UNKNOWN | ALWAYS | CASCADE | CHECK | GENERATED | ISOLATION | LEVEL | NO | 
OPTION | PRIVILEGES | READ | REFERENCES | ROLE | ROWS | START | TRANSACTION | 
USER | ACTION | CACHE | CHARACTERISTICS | CLUSTER | COLLATE | COMMENTS | 
CONCURRENTLY | CONNECT | CONSTRAINTS | CURRENT_TIMESTAMP | CYCLE | DATA | 
DATABASE | DEFAULTS | DEFERRABLE | DEFERRED | DEPENDS | DOMAIN | EXCLUDING | 
EXECUTE | EXTENDED | EXTENSION | EXTERNAL [...]
     ;
 
 typeFuncNameKeyword
@@ -659,12 +331,12 @@ bExpr
 
 cExpr
     : parameterMarker
-    | columnref
     | aexprConst
     | PARAM indirectionEl?
     | LP_ aExpr RP_ optIndirection
     | caseExpr
     | funcExpr
+    | columnref
     | selectWithParens
     | selectWithParens indirection
     | EXISTS selectWithParens
diff --git 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DDLStatement.g4
 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DDLStatement.g4
index f506aa2fdf7..9b78cdeda2a 100644
--- 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DDLStatement.g4
+++ 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DDLStatement.g4
@@ -190,7 +190,7 @@ createDefinitionClause
     ;
 
 createDefinition
-    : columnDefinition | tableConstraint | LIKE tableName likeOption*
+    : tableConstraint | LIKE tableName likeOption* | columnDefinition
     ;
 
 columnDefinition
@@ -379,9 +379,7 @@ alterTableActions
     ;
 
 alterTableAction
-    : addColumnSpecification
-    | dropColumnSpecification
-    | modifyColumnSpecification
+    : modifyColumnSpecification
     | addConstraintSpecification
     | modifyConstraintSpecification
     | validateConstraintSpecification
@@ -404,6 +402,8 @@ alterTableAction
     | NOT OF
     | OWNER TO (ignoredIdentifier | CURRENT_USER | SESSION_USER)
     | REPLICA IDENTITY (DEFAULT | (USING INDEX indexName) | FULL | NOTHING)
+    | addColumnSpecification
+    | dropColumnSpecification
     ;
 
 addColumnSpecification
@@ -1199,7 +1199,7 @@ alterViewClauses
     ;
 
 close
-    : CLOSE (cursorName | ALL)
+    : CLOSE (ALL | cursorName)
     ;
 
 cluster
@@ -1302,7 +1302,7 @@ createCast
     : CREATE CAST LP_ typeName AS typeName RP_ (
     | WITH FUNCTION (funcName | dataTypeName) funcArgs
     | WITHOUT FUNCTION
-    | WITH INOUT 
+    | WITH INOUT
     ) castContext?
     ;
 
diff --git 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
index 2b56262040c..6d7135e48de 100644
--- 
a/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
+++ 
b/parser/sql/dialect/opengauss/src/main/antlr4/imports/opengauss/DMLStatement.g4
@@ -123,10 +123,10 @@ selectClauseN
     ;
 
 simpleSelect
-    : SELECT ALL? targetList? intoClause? fromClause? whereClause? 
groupClause? havingClause? windowClause?
-    | SELECT distinctClause targetList intoClause? fromClause? whereClause? 
groupClause? havingClause? windowClause?
+    : SELECT distinctClause targetList intoClause? fromClause? whereClause? 
groupClause? havingClause? windowClause?
     | valuesClause
     | TABLE relationExpr
+    | SELECT ALL? targetList? intoClause? fromClause? whereClause? 
groupClause? havingClause? windowClause?
     ;
 
 withClause
@@ -228,8 +228,8 @@ offsetClause
     ;
 
 selectLimitValue
-    : cExpr
-    | ALL
+    : ALL
+    | cExpr
     ;
 
 selectOffsetValue
@@ -360,15 +360,24 @@ fromList
     ;
 
 tableReference
-    : relationExpr aliasClause?
+    : tableReference joinedTable
+    | relationExpr
+    | relationExpr aliasClause?
+    | relationExpr tablesampleClause
     | relationExpr aliasClause? tablesampleClause
+    | functionTable
     | functionTable funcAliasClause?
+    | LATERAL functionTable
     | LATERAL functionTable funcAliasClause?
+    | xmlTable
     | xmlTable aliasClause?
+    | LATERAL xmlTable
     | LATERAL xmlTable aliasClause?
+    | selectWithParens
     | selectWithParens aliasClause?
+    | LATERAL selectWithParens
     | LATERAL selectWithParens aliasClause?
-    | tableReference joinedTable
+    | LP_ tableReference joinedTable RP_
     | LP_ tableReference joinedTable RP_ aliasClause?
     ;
 
diff --git 
a/parser/sql/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
 
b/parser/sql/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
index 1769c5c6b83..a302be3744f 100644
--- 
a/parser/sql/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
+++ 
b/parser/sql/dialect/opengauss/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/opengauss/internal/InternalUnsupportedOpenGaussParserIT.java
@@ -19,7 +19,9 @@ package 
org.apache.shardingsphere.test.it.sql.parser.it.opengauss.internal;
 
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
+import org.junit.jupiter.api.Disabled;
 
+@Disabled
 @InternalSQLParserITSettings("openGauss")
 class InternalUnsupportedOpenGaussParserIT extends 
InternalUnsupportedSQLParserIT {
 }
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
index 85a5ed13f6e..2c59db05818 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/BaseRule.g4
@@ -87,255 +87,9 @@ identifier
     ;
 
 unreservedWord
-    : unreservedWord1 | unreservedWord2 | unreservedWord3 | capacityUnit | 
timeUnit
-    ;
-
-unreservedWord1
-    : TRUNCATE | FUNCTION | PROCEDURE | CASE | WHEN | CAST | TRIM | SUBSTRING
-    | USING | IF | TRUE | FALSE | LIMIT | OFFSET
-    | COMMIT | ROLLBACK | SAVEPOINT
-    | ARRAY | INTERVAL | TIME | TIMESTAMP | LOCALTIME | LOCALTIMESTAMP | YEAR
-    | QUARTER | MONTH | WEEK | DAY | HOUR | MINUTE | SECOND
-    | MICROSECOND | MAX | MIN | SUM | COUNT | AVG | ENABLE
-    | DISABLE | BINARY | ESCAPE | MOD | UNKNOWN | XOR | ALWAYS
-    | CASCADE | GENERATED | PRIVILEGES | READ | WRITE | REFERENCES | 
TRANSACTION
-    | ROLE | VISIBLE | INVISIBLE | EXECUTE | USE | DEBUG | UNDER
-    | FLASHBACK | ARCHIVE | REFRESH | QUERY | REWRITE | KEEP | SEQUENCE
-    | INHERIT | TRANSLATE | SQL | MERGE | AT | BITMAP | CACHE | CHECKPOINT
-    | CONSTRAINTS | CYCLE | DBTIMEZONE | ENCRYPT | DECRYPT | DEFERRABLE
-    | DEFERRED | EDITION | ELEMENT | EXCEPTIONS | FORCE | GLOBAL
-    | IDENTITY | INITIALLY | INVALIDATE | JAVA | LEVELS | LOCAL | MAXVALUE
-    | MINVALUE | NOMAXVALUE | NOMINVALUE | MINING | MODEL | NATIONAL | NEW
-    | NOCACHE | NOCYCLE | NOORDER | NORELY | NOVALIDATE | ONLY | PRESERVE
-    | PROFILE | REF | REKEY | RELY | REPLACE | SOURCE | SALT
-    | SCOPE | SORT | SUBSTITUTABLE | TABLESPACE | TEMPORARY | TRANSLATION | 
TREAT
-    | NO | TYPE | UNUSED | VALUE | VARYING | VIRTUAL | ZONE
-    | ADVISOR | ADMINISTER | TUNING | MANAGE | MANAGEMENT | OBJECT
-    | CONTEXT | EXEMPT | REDACTION | POLICY | DATABASE | SYSTEM
-    | LINK | ANALYZE | DICTIONARY | DIMENSION | INDEXTYPE | EXTERNAL | JOB
-    | CLASS | PROGRAM | SCHEDULER | LIBRARY | LOGMINING | MATERIALIZED | CUBE
-    | MEASURE | FOLDER | BUILD | PROCESS | OPERATOR | OUTLINE | PLUGGABLE
-    | CONTAINER | SEGMENT | RESTRICTED | COST | BACKUP | UNLIMITED
-    | BECOME | CHANGE | NOTIFICATION | PRIVILEGE | PURGE | RESUMABLE
-    | SYSGUID | SYSBACKUP | SYSDBA | SYSDG | SYSKM | SYSOPER | DBA_RECYCLEBIN 
|SCHEMA
-    | DO | DEFINER | CURRENT_USER | CASCADED | CLOSE | OPEN | NEXT | NAME | 
NAMES
-    | COLLATION | REAL | TYPE | FIRST | RANK | SAMPLE | SYSTIMESTAMP | MINUTE 
| ANY
-    | LENGTH | SINGLE_C | TIME_UNIT | TARGET | PUBLIC | ID | STATE | PRIORITY
-    | PRIMARY | FOREIGN | KEY | POSITION | PRECISION | FUNCTION | PROCEDURE | 
SPECIFICATION | CASE
-    | WHEN | CAST | TRIM | SUBSTRING | JOIN
-    | USING | FALSE | SAVEPOINT | BODY | CHARACTER | ARRAY | TIME | TIMEOUT | 
TIMESTAMP | LOCALTIME
-    | DAY | ENABLE | DISABLE | CALL | INSTANCE | CLOSE | NEXT | NAME | NUMERIC
-    | TRIGGERS | GLOBAL_NAME | BINARY | MOD | XOR | UNKNOWN | ALWAYS | CASCADE 
| GENERATED | PRIVILEGES
-    | READ | WRITE | ROLE | VISIBLE | INVISIBLE | EXECUTE | USE | DEBUG | 
UNDER | FLASHBACK
-    | ARCHIVE | REFRESH | QUERY | REWRITE | CHECKPOINT | ENCRYPT | DIRECTORY | 
CREDENTIALS | EXCEPT | NOFORCE
-    | NOSORT | MINING | MODEL | REVERSE | SORT | TABLESPACE | TREAT | 
ADMINISTER | TUNING
-    | CONTEXT | LINK | DICTIONARY | INDEXTYPES | RESTRICT | BACKUP | 
RECYCLEBIN | NCHAR | NVARCHAR2 | BLOB
-    | CLOB | NCLOB | BINARY_FLOAT | BINARY_DOUBLE | PLS_INTEGER | 
BINARY_INTEGER | NATURALN | POSITIVE | POSITIVEN | SIGNTYPE
-    | SIMPLE_INTEGER | BFILE | UROWID | JSON | DEC | SHARING | PRIVATE | 
SHARDED | SHARD | DUPLICATED
-    | METADATA | DATA | EXTENDED | NONE | MEMOPTIMIZE | PARENT | IDENTIFIER | 
WORK | CONTAINER_MAP | CONTAINERS_DEFAULT
-    | WAIT | BATCH | BLOCK | REBUILD | INVALIDATION | COMPILE | USABLE | 
UNUSABLE | MONITORING | NOMONITORING
-    | USAGE | COALESCE | CLEANUP | PARALLEL | NOPARALLEL | LOG | REUSE | 
SETTINGS | STORAGE | MATCHED
-    | ERRORS | REJECT | RETENTION | CHUNK | PCTVERSION | FREEPOOLS | AUTO | 
DEDUPLICATE | KEEP_DUPLICATES | HIGH
-    | MEDIUM | LOW | READS | CREATION | PCTUSED | INITRANS | LOGGING | 
NOLOGGING | FILESYSTEM_LIKE_LOGGING | MINEXTENTS
-    | BASIC | ADVANCED | PCTINCREASE | FREELISTS | DML | DDL | CAPACITY | 
FREELIST | GROUPS | OPTIMAL
-    | BUFFER_POOL | RECYCLE | FLASH_CACHE | CELL_FLASH_CACHE | MAXSIZE | 
MAX_AUDIT_SIZE | MAX_DIAG_SIZE | STORE | LOCKING | INMEMORY
-    | MEMCOMPRESS | PRIORITY | CRITICAL | DISTRIBUTE | RANGE | PARTITION | 
SUBPARTITION | SERVICE | DUPLICATE | ILM
-    | DELETE_ALL | ENABLE_ALL | DISABLE_ALL | AFTER | MODIFICATION | DAYS | 
MONTHS | YEARS | TIER | ORGANIZATION
-    | HEAP | PCTTHRESHOLD | PARAMETERS | LOCATION | MAPPING | NOMAPPING | 
INCLUDING | OVERFLOW | ATTRIBUTE | ATTRIBUTES
-    | RESULT_CACHE | ROWDEPENDENCIES | NOROWDEPENDENCIES | ARCHIVAL | EXCHANGE 
| INDEXING | OFF | LESS | INTERNAL | VARRAY
-    | NESTED | RETURN | LOCATOR | LOB | SECUREFILE | BASICFILE | THAN | LIST | 
AUTOMATIC | HASH
-    | PARTITIONS | SUBPARTITIONS | TEMPLATE | PARTITIONSET | REFERENCE | 
CONSISTENT | CLUSTERING | LINEAR | INTERLEAVED | YES
-    | LOAD | MOVEMENT | ZONEMAP | WITHOUT | XMLTYPE | RELATIONAL | XML | 
VARRAYS | LOBS | TABLES
-    | ALLOW | DISALLOW | NONSCHEMA | ANYSCHEMA | XMLSCHEMA | COLUMNS | 
OIDINDEX | EDITIONABLE | NONEDITIONABLE | DEPENDENT
-    | INDEXES | SHRINK | SPACE | COMPACT | SUPPLEMENTAL | ADVISE | NOTHING | 
GUARD | SYNC | VISIBILITY
-    | ACTIVE | DEFAULT_COLLATION | MOUNT | STANDBY | CLONE | RESETLOGS | 
NORESETLOGS | UPGRADE | DOWNGRADE | RECOVER
-    | LOGFILE | TEST | CORRUPTION | CONTINUE | CANCEL | UNTIL | CONTROLFILE | 
SNAPSHOT | DATAFILE | MANAGED
-    | ARCHIVED | DISCONNECT | NODELAY | INSTANCES | FINISH | LOGICAL | 
AUTOEXTEND | BLOCKSIZE | RESIZE | TEMPFILE
-    | DATAFILES | ARCHIVELOG | MANUAL | NOARCHIVELOG | AVAILABILITY | 
PERFORMANCE | CLEAR | UNARCHIVED | UNRECOVERABLE | THREAD
-    | MEMBER | PHYSICAL | FAR | TRACE | DISTRIBUTED | RECOVERY | FLUSH | 
NOREPLY | SWITCH | LOGFILES
-    | PROCEDURAL | REPLICATION | SUBSET | ACTIVATE | APPLY | MAXIMIZE | 
PROTECTION | SUSPEND | RESUME | QUIESCE
-    | UNQUIESCE | SHUTDOWN | REGISTER | PREPARE | SWITCHOVER | FAILED | 
SKIP_SYMBOL | STOP | ABORT | VERIFY
-    | CONVERT | FAILOVER | BIGFILE | SMALLFILE | TRACKING | CACHING | 
CONTAINERS | UNDO | MOVE | MIRROR
-    | COPY | UNPROTECTED | REDUNDANCY | REMOVE | LOST | LEAD_CDB | 
LEAD_CDB_URI | PROPERTY | DEFAULT_CREDENTIAL | TIME_ZONE
-    | RESET | RELOCATE | CLIENT | PASSWORDFILE_METADATA_CACHE | NOSWITCH | 
POST_TRANSACTION | KILL | ROLLING | MIGRATION | PATCH
-    | ENCRYPTION | WALLET | AFFINITY | MEMORY | SPFILE | PFILE | BOTH | SID | 
SHARED_POOL | BUFFER_CACHE
-    | REDO | CONFIRM | MIGRATE | USE_STORED_OUTLINES | GLOBAL_TOPIC_ENABLED | 
LOCKED | FETCH | PERCENT | TIES | SIBLINGS
-    | NULLS | LAST | ISOLATION | SERIALIZABLE | COMMITTED | FILTER | FACT | 
DETERMINISTIC | PIPELINED | PARALLEL_ENABLE
-    | OUT | NOCOPY | ACCESSIBLE | PACKAGE | PACKAGES | USING_NLS_COMP | AUTHID 
| SEARCH | DEPTH | BREADTH
-    | ANALYTIC | HIERARCHIES | MEASURES | OVER | LAG | LAG_DIFF | 
LAG_DIF_PERCENT | LEAD | LEAD_DIFF | LEAD_DIFF_PERCENT
-    | HIERARCHY | WITHIN | ACROSS | ANCESTOR | BEGINNING | UNBOUNDED | 
PRECEDING | FOLLOWING | DENSE_RANK | AVERAGE_RANK
-    | ROW_NUMBER | SHARE_OF | HIER_ANCESTOR | HIER_PARENT | HIER_LEAD | 
HIER_LAG | QUALIFY | HIER_CAPTION | HIER_DEPTH | HIER_DESCRIPTION
-    | HIER_LEVEL | HIER_MEMBER_NAME | HIER_MEMBER_UNIQUE_NAME | CHAINED | 
STATISTICS | DANGLING | STRUCTURE | FAST | COMPLETE | ASSOCIATE
-    | DISASSOCIATE | FUNCTIONS | TYPES | SELECTIVITY | RETURNING | VERSIONS | 
SCN | PERIOD | LATERAL | BADFILE
-    | DISCARDFILE | PIVOT | UNPIVOT | INCLUDE | EXCLUDE | SEED | SHARDS | 
MATCH_RECOGNIZE | PATTERN | DEFINE
-    | ONE | PER | MATCH | PAST | PERMUTE | CLASSIFIER | MATCH_NUMBER | RUNNING 
| FINAL | PREV
-    | USERS | GRANTED | ROLES | NAMESPACE | ROLLUP | GROUPING | SETS | DECODE 
| RESTORE | POINT
-    | BEFORE | IGNORE | NAV | SINGLE | UPDATED | MAIN | RULES | UPSERT | 
SEQUENTIAL | ITERATE
-    | DECREMENT | SOME | NAN | INFINITE | PRESENT | EMPTY | SUBMULTISET | 
LIKEC | LIKE2 | LIKE4
-    | REGEXP_LIKE | EQUALS_PATH | UNDER_PATH | FORMAT | STRICT | LAX | KEYS | 
JSON_EQUAL | JSON_EXISTS | PASSING
-    | ERROR | JSON_TEXTCONTAINS | HAS | STARTS | LIKE_REGEX | EQ_REGEX | SYS | 
MAXDATAFILES | MAXINSTANCES | AL32UTF8
-    | AL16UTF16 | UTF8 | USER_DATA | MAXLOGFILES | MAXLOGMEMBERS | 
MAXLOGHISTORY | EXTENT | SYSAUX | LEAF | AUTOALLOCATE
-    | UNIFORM | FILE_NAME_CONVERT | ALLOCATE | DEALLOCATE | SHARED | 
AUTHENTICATED | CHILD | DETERMINES | RELIES_ON | AGGREGATE
-    | POLYMORPHIC | SQL_MARCO | LANGUAGE | AGENT | SELF | TDO | INDICATOR | 
STRUCT | LENGTH | DURATION
-    | MAXLEN | CHARSETID | CHARSETFORM | CATEGORY | NOKEEP | SCALE | NOSCALE | 
EXTEND | NOEXTEND | NOSHARD
-    | INITIALIZED | EXTERNALLY | GLOBALLY | ACCESSED | RESTART | OPTIMIZE | 
QUOTA | DISKGROUP | NORMAL | FLEX
-    | SITE | QUORUM | REGULAR | FAILGROUP | DISK | EXCLUDING | CONTENTS | 
LOCKDOWN | CLEAN | GUARANTEE
-    | PRUNING | DEMAND | RESOLVE | RESOLVER | ANCILLARY | BINDING | SCAN | 
COMPUTE | UNDROP | DISKS
-    | COARSE | FINE | ALIAS | SCRUB | DISMOUNT | REBALANCE | COMPUTATION | 
CONSIDER | FRESH | MASTER
-    | ENFORCED | TRUSTED | ID | SYNCHRONOUS | ASYNCHRONOUS | REPEAT | FEATURE 
| STATEMENT | CLAUSE | UNPLUG
-    | HOST | PORT | EVERY | MINUTES | HOURS | NORELOCATE | SAVE | DISCARD | 
APPLICATION | INSTALL
-    | MINIMUM | VERSION | UNINSTALL | COMPATIBILITY | MATERIALIZE | SUBTYPE | 
RECORD | CONSTANT | CURSOR
-    | OTHERS | EXCEPTION | CPU_PER_SESSION | CONNECT_TIME | 
LOGICAL_READS_PER_SESSION | PRIVATE_SGA | PERCENT_RANK | ROWID
-    | LPAD | ZONE | SESSIONTIMEZONE | TO_CHAR | XMLELEMENT | COLUMN_VALUE | 
EVALNAME | LEVEL | CONTENT | ON | LOOP | EXIT | ELSIF
-    ;
-
-unreservedWord2
-    : ABS | ACCESS | ACCOUNT | ACOS | ACTIVE_COMPONENT | ACTIVE_FUNCTION | 
ACTIVE_TAG | ADD
-    | ADD_COLUMN | ADD_GROUP | ADD_MONTHS | ADJ_DATE | ADMIN | ADMINISTRATOR | 
ALL_ROWS | AND_EQUAL | ANTIJOIN | APPEND
-    | APPENDCHILDXML | APPEND_VALUES | ASCII | ASCIISTR | ASIN | ASSEMBLY | 
ASYNC | ATAN | ATAN2 | AUDIT | AUTHENTICATION
-    | AUTHORIZATION | BEGIN_OUTLINE_DATA | BEHALF | BFILENAME | 
BINARY_DOUBLE_INFINITY | BINARY_DOUBLE_NAN
-    | BINARY_FLOAT_INFINITY | BINARY_FLOAT_NAN | BIND_AWARE | BIN_TO_NUM | 
BITAND | BITMAPS | BITMAP_TREE | BITS | BLOCKS
-    | BLOCK_RANGE | BOUND | BRANCH | BROADCAST | BUFFER | BULK | 
BYPASS_RECURSIVE_CHECK | BYPASS_UJVC | BYTE | CACHE_CB
-    | CACHE_INSTANCES | CACHE_TEMP_TABLE | CARDINALITY | CEIL | CERTIFICATE | 
CFILE | CHANGE_DUPKEY_ERROR_INDEX | CHARTOROWID
-    | CHAR_CS | CHECK_ACL_REWRITE | CHOOSE | CHR | CLOSE_CACHED_OPEN_CURSORS | 
CLUSTERING_FACTOR | CLUSTER_ID
-    | CLUSTER_PROBABILITY | CLUSTER_SET | COALESCE_SQ | COLD | COLLECT | 
COLUMN | COLUMNAR | COLUMN_AUTH_INDICATOR
-    | COLUMN_STATS | COMMENT | COMPLIANCE | COMPOSE | COMPOSITE | 
COMPOSITE_LIMIT | COMPOUND | CONCAT | CONFORMING
-    | CONNECT_BY_CB_WHR_ONLY | CONNECT_BY_COMBINE_SW | CONNECT_BY_COST_BASED | 
CONNECT_BY_ELIM_DUPS | CONNECT_BY_FILTERING
-    | CONNECT_BY_ISCYCLE | CONNECT_BY_ISLEAF | CONNECT_BY_ROOT | CONST | CORR 
| CORRUPT_XID | CORRUPT_XID_ALL | CORR_K | CORR_S
-    | COS | COSH | COST_XML_QUERY_REWRITE | COVAR_POP | COVAR_SAMP | 
CO_AUTH_IND | CPU_COSTING | CPU_PER_CALL | CRASH
-    | CREATE_STORED_OUTLINES | CROSSEDITION | CSCONVERT | CUBE_GB | CUME_DIST 
| CUME_DISTM | CURRENT | CURRENTV | CURRENT_DATE
-    | CURRENT_SCHEMA | CURRENT_TIME | CURRENT_TIMESTAMP | CURSOR_SHARING_EXACT 
| CURSOR_SPECIFIC_SEGMENT | CV
-    | DATABASE_DEFAULT | DATAOBJNO | DATAOBJ_TO_PARTITION | DATE_MODE | DBA | 
DBMS_STATS | DBMS_LOB | DB_ROLE_CHANGE | DB_VERSION
-    | DEBUGGER | DECLARE | DECOMPOSE | DECR | DEFAULT | DEFAULTS | DEFINED | 
DEGREE | DELAY | DELETEXML | DENSE_RANKM | DEQUEUE | DEREF
-    | DEREF_NO_REWRITE | DETACHED | DIRECT_LOAD | DISABLE_PRESET | 
DISABLE_RPKE | DISTINGUISHED | DML_UPDATE | DOCFIDELITY
-    | DOCUMENT | DOMAIN_INDEX_FILTER | DOMAIN_INDEX_NO_SORT | 
DOMAIN_INDEX_SORT | DRIVING_SITE | DROP_COLUMN | DROP_GROUP
-    | DST_UPGRADE_INSERT_CONV | DUMP | DYNAMIC | DYNAMIC_SAMPLING | 
DYNAMIC_SAMPLING_EST_CDN | EACH | EDITIONING | EDITIONS
-    | ELIMINATE_JOIN | ELIMINATE_OBY | ELIMINATE_OUTER_JOIN | EMPTY_BLOB | 
EMPTY_CLOB | ENABLE_PRESET | ENCODING
-    | END_OUTLINE_DATA | ENFORCE | ENQUEUE | ENTERPRISE | ENTITYESCAPING | 
ENTRY | ERROR_ARGUMENT | ERROR_ON_OVERLAP_TIME
-    | ESTIMATE | EVALUATION | EVENTS | EXISTSNODE | EXP | EXPAND_GSET_TO_UNION 
| EXPAND_TABLE | EXPIRE | EXPLAIN | EXPLOSION
-    | EXPORT | EXPR_CORR_CHECK | EXTENDS | EXTENTS | EXTRA | EXTRACT | 
EXTRACTVALUE | FACILITY | FACTORIZE_JOIN
-    | FAILED_LOGIN_ATTEMPTS | FBTSCAN | FEATURE_ID | FEATURE_SET | 
FEATURE_VALUE | FILE | FIRSTM | FIRST_ROWS | FIRST_VALUE
-    | FLAGGER | FLOB | FLOOR | FOLLOWS | FORCE_XML_QUERY_REWRITE | FOREVER | 
FORWARD | FROM_TZ | GATHER_PLAN_STATISTICS
-    | GBY_CONC_ROLLUP | GBY_PUSHDOWN | GREATEST | GROUPING_ID | GROUP_BY | 
GROUP_ID | GUARANTEED | HASHKEYS | HASH_AJ | HASH_SJ
-    | HEADER | HELP | HEXTORAW | HEXTOREF | HIDE | HINTSET_BEGIN | HINTSET_END 
| HOT | HWM_BROKERED | HYBRID
-    | IDGENERATORS | IDLE_TIME | IGNORE_OPTIM_EMBEDDED_HINTS | 
IGNORE_ROW_ON_DUPKEY_INDEX | IGNORE_WHERE_CLAUSE | IMMEDIATE
-    | IMPACT | IMPORT | INCLUDE_VERSION | INCR | INCREMENT | INCREMENTAL | 
INDENT | INDEXED | INDEX_ASC | INDEX_COMBINE
-    | INDEX_DESC | INDEX_FFS | INDEX_FILTER | INDEX_JOIN | INDEX_ROWS | 
INDEX_RRS | INDEX_RS | INDEX_RS_ASC | INDEX_RS_DESC
-    | INDEX_SCAN | INDEX_SKIP_SCAN | INDEX_SS | INDEX_SS_ASC | INDEX_SS_DESC | 
INDEX_STATS | INFORMATIONAL | INITCAP | INITIAL
-    | INLINE | INLINE_XMLTYPE_NT | INSERTCHILDXML | INSERTCHILDXMLAFTER | 
INSERTCHILDXMLBEFORE | INSERTXMLAFTER
-    | INSERTXMLBEFORE | INSTANTIABLE | INSTANTLY | INSTEAD | INSTR | INSTR2 | 
INSTR4 | INSTRB | INSTRC | INTERMEDIATE
-    | INTERNAL_CONVERT | INTERNAL_USE | INTERPRETED | IN_MEMORY_METADATA | 
IN_XQUERY | ISOLATION_LEVEL | ITERATION_NUMBER
-    | KERBEROS | KEYSIZE | KEY_LENGTH | LAST_DAY | LAST_VALUE | LAYER | 
LDAP_REGISTRATION | LDAP_REGISTRATION_ENABLED
-    | LDAP_REG_SYNC_INTERVAL | LEADING | LEAST | LENGTH2 | LENGTH4 | LENGTHB | 
LENGTHC | LIFE | LIFETIME | LIKE_EXPAND
-    | LISTAGG | LN | LNNVL | LOBNVL | LOCAL_INDEXES | LOGICAL_READS_PER_CALL | 
LOGOFF | LOGON | LOWER | LTRIM | MAKE_REF
-    | MAXARCHLOGS | MAXEXTENTS | MAXTRANS | MEDIAN | MERGE_AJ | MERGE_CONST_ON 
| MERGE_SJ | METHOD | MINIMIZE | MINUS_NULL
-    | MIRRORCOLD | MIRRORHOT | MLSLABEL | MODEL_COMPILE_SUBQUERY | 
MODEL_DONTVERIFY_UNIQUENESS | MODEL_DYNAMIC_SUBQUERY
-    | MODEL_MIN_ANALYSIS | MODEL_NO_ANALYSIS | MODEL_PBY | MODEL_PUSH_REF | 
MODIFY | MONITOR | MONTHS_BETWEEN | MOUNTPATH
-    | MULTISET | MV_MERGE | NAMED | NANVL | NATIVE | NATIVE_FULL_OUTER_JOIN | 
NCHAR_CS | NCHR | NEEDED
-    | NESTED_TABLE_FAST_INSERT | NESTED_TABLE_GET_REFS | NESTED_TABLE_ID | 
NESTED_TABLE_SET_REFS | NESTED_TABLE_SET_SETID
-    | NETWORK | NEVER | NEW_TIME | NEXT_DAY | NLJ_BATCHING | NLJ_INDEX_FILTER 
| NLJ_INDEX_SCAN | NLJ_PREFETCH | NLSSORT
-    | NLS_CALENDAR | NLS_CHARACTERSET | NLS_CHARSET_DECL_LEN | NLS_CHARSET_ID 
| NLS_CHARSET_NAME | NLS_COMP | NLS_CURRENCY
-    | NLS_DATE_FORMAT | NLS_DATE_LANGUAGE | NLS_INITCAP | NLS_ISO_CURRENCY | 
NLS_LANG | NLS_LANGUAGE | NLS_LENGTH_SEMANTICS
-    | NLS_LOWER | NLS_NCHAR_CONV_EXCP | NLS_NUMERIC_CHARACTERS | NLS_SORT | 
NLS_SPECIAL_CHARS | NLS_TERRITORY | NLS_UPPER
-    | NL_AJ | NL_SJ | NOAPPEND | NOAUDIT | NOCPU_COSTING | NOENTITYESCAPING | 
NOGUARANTEE | NOLOCAL | NOMINIMIZE | NOOVERRIDE
-    | NOPARALLEL_INDEX | NOREPAIR | NOREVERSE | NOREWRITE | NOSCHEMACHECK | 
NOSEGMENT | NOSTRICT | NO_ACCESS
-    | NO_BASETABLE_MULTIMV_REWRITE | NO_BIND_AWARE | NO_BUFFER | NO_CARTESIAN 
| NO_CHECK_ACL_REWRITE | NO_COALESCE_SQ
-    | NO_CONNECT_BY_CB_WHR_ONLY | NO_CONNECT_BY_COMBINE_SW | 
NO_CONNECT_BY_COST_BASED | NO_CONNECT_BY_ELIM_DUPS
-    | NO_CONNECT_BY_FILTERING | NO_COST_XML_QUERY_REWRITE | NO_CPU_COSTING | 
NO_DOMAIN_INDEX_FILTER
-    | NO_DST_UPGRADE_INSERT_CONV | NO_ELIMINATE_JOIN | NO_ELIMINATE_OBY | 
NO_ELIMINATE_OUTER_JOIN | NO_EXPAND
-    | NO_EXPAND_GSET_TO_UNION | NO_EXPAND_TABLE | NO_FACT | NO_FACTORIZE_JOIN 
| NO_FILTERING | NO_GBY_PUSHDOWN | NO_INDEX
-    | NO_INDEX_FFS | NO_INDEX_SS | NO_LOAD | NO_MERGE | NO_MODEL_PUSH_REF | 
NO_MONITOR | NO_MONITORING | NO_MULTIMV_REWRITE
-    | NO_NATIVE_FULL_OUTER_JOIN | NO_NLJ_BATCHING | NO_NLJ_PREFETCH | 
NO_ORDER_ROLLUPS | NO_OUTER_JOIN_TO_INNER | NO_PARALLEL
-    | NO_PARALLEL_INDEX | NO_PARTIAL_COMMIT | NO_PLACE_DISTINCT | 
NO_PLACE_GROUP_BY | NO_PQ_MAP | NO_PRUNE_GSETS | NO_PULL_PRED
-    | NO_PUSH_PRED | NO_PUSH_SUBQ | NO_PX_JOIN_FILTER | NO_QKN_BUFF | 
NO_QUERY_TRANSFORMATION | NO_REF_CASCADE
-    | NO_RESULT_CACHE | NO_REWRITE | NO_SEMIJOIN | NO_SET_TO_JOIN | 
NO_SQL_TUNE | NO_STAR_TRANSFORMATION | NO_STATEMENT_QUEUING
-    | NO_STATS_GSETS | NO_SUBQUERY_PRUNING | NO_SUBSTRB_PAD | 
NO_SWAP_JOIN_INPUTS | NO_TEMP_TABLE | NO_TRANSFORM_DISTINCT_AGG
-    | NO_UNNEST | NO_USE_HASH | NO_USE_HASH_AGGREGATION | 
NO_USE_INVISIBLE_INDEXES | NO_USE_MERGE | NO_USE_NL
-    | NO_XMLINDEX_REWRITE | NO_XMLINDEX_REWRITE_IN_SELECT | NO_XML_DML_REWRITE 
| NO_XML_QUERY_REWRITE | NTH_VALUE | NTILE
-    | NULLIF | NUMTODSINTERVAL | NUMTOYMINTERVAL | NUM_INDEX_KEYS | NVL | NVL2 
| OBJECTTOXML | OBJNO | OBJNO_REUSE | OCCURENCES
-    | OFFLINE | OID | OLAP | OLD | OLD_PUSH_PRED | OLTP | ONLINE | OPAQUE | 
OPAQUE_TRANSFORM | OPAQUE_XCANONICAL | OPCODE
-    | OPERATIONS | OPTIMIZER_FEATURES_ENABLE | OPTIMIZER_GOAL | OPT_ESTIMATE | 
OPT_PARAM | ORADEBUG | ORA_BRANCH | ORA_CHECKACL
-    | ORA_DST_AFFECTED | ORA_DST_CONVERT | ORA_DST_ERROR | ORA_GET_ACLIDS | 
ORA_GET_PRIVILEGES | ORA_HASH | ORA_ROWSCN
-    | ORA_ROWSCN_RAW | ORA_ROWVERSION | ORA_TABVERSION | ORDERED | 
ORDERED_PREDICATES | ORDINALITY | OR_EXPAND | OR_PREDICATES
-    | OTHER | OUTER_JOIN_TO_INNER | OUTLINE_LEAF | OUT_OF_LINE | 
OVERFLOW_NOMOVE | OVERLAPS | OWN | OWNER | OWNERSHIP
-    | PARALLEL_INDEX | PARAM | PARITY | PARTIALLY | PARTITION_HASH | 
PARTITION_LIST | PARTITION_RANGE | PASSWORD
-    | PASSWORD_GRACE_TIME | PASSWORD_LIFE_TIME | PASSWORD_LOCK_TIME | 
PASSWORD_REUSE_MAX | PASSWORD_REUSE_TIME
-    | PASSWORD_VERIFY_FUNCTION | PATH | PATHS | PBL_HS_BEGIN | PBL_HS_END | 
PENDING | PERCENTILE_CONT | PERCENTILE_DISC
-    | PERCENT_RANKM | PERMANENT | PERMISSION | PIKEY | PIV_GB | PIV_SSF | 
PLACE_DISTINCT | PLACE_GROUP_BY | PLAN
-    | PLSCOPE_SETTINGS | PLSQL_CCFLAGS | PLSQL_CODE_TYPE | PLSQL_DEBUG | 
PLSQL_OPTIMIZE_LEVEL | PLSQL_WARNINGS | POWER
-    | POWERMULTISET | POWERMULTISET_BY_CARDINALITY | PQ_DISTRIBUTE | PQ_MAP | 
PQ_NOMAP | PREBUILT | PRECEDES
-    ;
-
-unreservedWord3
-    : PRECOMPUTE_SUBQUERY | PREDICATE_REORDERS | PREDICTION | 
PREDICTION_BOUNDS | PREDICTION_COST | PREDICTION_DETAILS
-    | PREDICTION_PROBABILITY | PREDICTION_SET | PRESENTNNV | PRESENTV | 
PRESERVE_OID | PREVIOUS | PROJECT | PROPAGATE
-    | PROTECTED | PULL_PRED | PUSH_PRED | PUSH_SUBQ | PX_GRANULE | 
PX_JOIN_FILTER | QB_NAME | QUERY_BLOCK | QUEUE | QUEUE_CURR
-    | QUEUE_ROWP | RANDOM | RANDOM_LOCAL | RANKM | RAPIDLY | RATIO_TO_REPORT | 
RAWTOHEX | RAWTONHEX | RBA | RBO_OUTLINE | RDBA
-    | RECORDS_PER_BLOCK | RECOVERABLE | REDUCED | REFERENCED | REFERENCING | 
REFTOHEX | REF_CASCADE_CURSOR | REGEXP_COUNT
-    | REGEXP_INSTR | REGEXP_REPLACE | REGEXP_SUBSTR | REGR_AVGX | REGR_AVGY | 
REGR_COUNT | REGR_INTERCEPT | REGR_R2
-    | REGR_SLOPE | REGR_SXX | REGR_SXY | REGR_SYY | REMAINDER | REMOTE_MAPPED 
| REPAIR | REQUIRED | RESPECT
-    | RESTORE_AS_INTERVALS | RESTRICT_ALL_REF_CONS | RETRY_ON_ROW_CHANGE | 
REWRITE_OR_ERROR | ROUND | ROW | ROWIDTOCHAR
-    | ROWIDTONCHAR | ROWNUM | ROWS | ROW_LENGTH | RPAD | RTRIM | RULE | 
SAVE_AS_INTERVALS | SB4 | SCALE_ROWS | SCAN_INSTANCES
-    | SCHEMACHECK | SCN_ASCENDING | SD_ALL | SD_INHIBIT | SD_SHOW | 
SECUREFILE_DBA | SECURITY | SEG_BLOCK | SEG_FILE | SEMIJOIN
-    | SEMIJOIN_DRIVER | SEQUENCED | SERVERERROR | SESSION | SESSIONS_PER_USER 
| SESSIONTZNAME | SESSION_CACHED_CURSORS
-    | SET_TO_JOIN | SEVERE | SHOW | SIGN | SIGNAL_COMPONENT | SIGNAL_FUNCTION 
| SIMPLE | SIN | SINGLETASK | SINH
-    | SKIP_EXT_OPTIMIZER | SKIP_UNQ_UNUSABLE_IDX | SKIP_UNUSABLE_INDEXES | 
SOUNDEX | SPLIT | SPREADSHEET | SQLLDR | SQL_TRACE
-    | SQRT | STALE | STANDALONE | STANDBY_MAX_DATA_DELAY | STAR | STARTUP | 
STAR_TRANSFORMATION | STATEMENTS | STATEMENT_ID
-    | STATEMENT_QUEUING | STATIC | STATS_BINOMIAL_TEST | STATS_CROSSTAB | 
STATS_F_TEST | STATS_KS_TEST | STATS_MODE
-    | STATS_MW_TEST | STATS_ONE_WAY_ANOVA | STATS_T_TEST_INDEP | 
STATS_T_TEST_INDEPU | STATS_T_TEST_ONE | STATS_T_TEST_PAIRED
-    | STATS_WSR_TEST | STDDEV | STDDEV_POP | STDDEV_SAMP | STREAMS | STRING | 
STRIP | STRIPE_COLUMNS | STRIPE_WIDTH
-    | SUBPARTITION_REL | SUBQUERIES | SUBQUERY_PRUNING | SUBSTR | SUBSTR2 | 
SUBSTR4 | SUBSTRB | SUBSTRC | SUCCESSFUL | SUMMARY
-    | SWAP_JOIN_INPUTS | SYSASM | SYSDATE | SYSTEM_DEFINED | SYS_AUDIT | 
SYS_CHECKACL | SYS_CONNECT_BY_PATH | SYS_CONTEXT
-    | SYS_DBURIGEN | SYS_DL_CURSOR | SYS_DM_RXFORM_CHR | SYS_DM_RXFORM_NUM | 
SYS_DOM_COMPARE | SYS_DST_PRIM2SEC
-    | SYS_DST_SEC2PRIM | SYS_ET_BFILE_TO_RAW | SYS_ET_BLOB_TO_IMAGE | 
SYS_ET_IMAGE_TO_BLOB | SYS_ET_RAW_TO_BFILE | SYS_EXTPDTXT
-    | SYS_EXTRACT_UTC | SYS_FBT_INSDEL | SYS_FILTER_ACLS | SYS_GETTOKENID | 
SYS_GET_ACLIDS | SYS_GET_PRIVILEGES | SYS_GUID
-    | SYS_MAKEXML | SYS_MAKE_XMLNODEID | SYS_MKXMLATTR | SYS_OPTLOBPRBSC | 
SYS_OPTXICMP | SYS_OPTXQCASTASNQ | SYS_OP_ADT2BIN
-    | SYS_OP_ADTCONS | SYS_OP_ALSCRVAL | SYS_OP_ATG | SYS_OP_BIN2ADT | 
SYS_OP_BITVEC | SYS_OP_BL2R | SYS_OP_BLOOM_FILTER
-    | SYS_OP_BLOOM_FILTER_LIST | SYS_OP_C2C | SYS_OP_CAST | SYS_OP_CEG | 
SYS_OP_CL2C | SYS_OP_COMBINED_HASH | SYS_OP_COMP
-    | SYS_OP_CONVERT | SYS_OP_COUNTCHG | SYS_OP_CSCONV | SYS_OP_CSCONVTEST | 
SYS_OP_CSR | SYS_OP_CSX_PATCH | SYS_OP_DECOMP
-    | SYS_OP_DESCEND | SYS_OP_DISTINCT | SYS_OP_DRA | SYS_OP_DUMP | 
SYS_OP_EXTRACT | SYS_OP_GROUPING | SYS_OP_GUID | SYS_OP_IIX
-    | SYS_OP_ITR | SYS_OP_LBID | SYS_OP_LOBLOC2BLOB | SYS_OP_LOBLOC2CLOB | 
SYS_OP_LOBLOC2ID | SYS_OP_LOBLOC2NCLOB
-    | SYS_OP_LOBLOC2TYP | SYS_OP_LSVI | SYS_OP_LVL | SYS_OP_MAKEOID | 
SYS_OP_MAP_NONNULL | SYS_OP_MSR | SYS_OP_NICOMBINE
-    | SYS_OP_NIEXTRACT | SYS_OP_NII | SYS_OP_NIX | SYS_OP_NOEXPAND | 
SYS_OP_NUMTORAW | SYS_OP_OIDVALUE | SYS_OP_OPNSIZE
-    | SYS_OP_PAR | SYS_OP_PARGID | SYS_OP_PARGID_1 | SYS_OP_PAR_1 | 
SYS_OP_PIVOT | SYS_OP_R2O | SYS_OP_RAWTONUM | SYS_OP_RDTM
-    | SYS_OP_REF | SYS_OP_RMTD | SYS_OP_ROWIDTOOBJ | SYS_OP_RPB | 
SYS_OP_TOSETID | SYS_OP_TPR | SYS_OP_TRTB | SYS_OP_UNDESCEND
-    | SYS_OP_VECAND | SYS_OP_VECBIT | SYS_OP_VECOR | SYS_OP_VECXOR | 
SYS_OP_VERSION | SYS_OP_VREF | SYS_OP_VVD | SYS_OP_XPTHATG
-    | SYS_OP_XPTHIDX | SYS_OP_XPTHOP | SYS_OP_XTXT2SQLT | SYS_ORDERKEY_DEPTH | 
SYS_ORDERKEY_MAXCHILD | SYS_ORDERKEY_PARENT
-    | SYS_PARALLEL_TXN | SYS_PATHID_IS_ATTR | SYS_PATHID_IS_NMSPC | 
SYS_PATHID_LASTNAME | SYS_PATHID_LASTNMSPC
-    | SYS_PATH_REVERSE | SYS_PXQEXTRACT | SYS_RID_ORDER | SYS_ROW_DELTA | 
SYS_SC_2_XMLT | SYS_SYNRCIREDO | SYS_TYPEID
-    | SYS_UMAKEXML | SYS_XMLANALYZE | SYS_XMLCONTAINS | SYS_XMLCONV | 
SYS_XMLEXNSURI | SYS_XMLGEN | SYS_XMLI_LOC_ISNODE
-    | SYS_XMLI_LOC_ISTEXT | SYS_XMLLOCATOR_GETSVAL | SYS_XMLNODEID | 
SYS_XMLNODEID_GETCID | SYS_XMLNODEID_GETLOCATOR
-    | SYS_XMLNODEID_GETOKEY | SYS_XMLNODEID_GETPATHID | SYS_XMLNODEID_GETPTRID 
| SYS_XMLNODEID_GETRID | SYS_XMLNODEID_GETSVAL
-    | SYS_XMLNODEID_GETTID | SYS_XMLTRANSLATE | SYS_XMLTYPE2SQL | 
SYS_XMLT_2_SC | SYS_XQBASEURI | SYS_XQCASTABLEERRH
-    | SYS_XQCODEP2STR | SYS_XQCODEPEQ | SYS_XQCON2SEQ | SYS_XQCONCAT | 
SYS_XQDELETE | SYS_XQDFLTCOLATION | SYS_XQDOC
-    | SYS_XQDOCURI | SYS_XQED4URI | SYS_XQENDSWITH | SYS_XQERR | SYS_XQERRH | 
SYS_XQESHTMLURI | SYS_XQEXLOBVAL | SYS_XQEXSTWRP
-    | SYS_XQEXTRACT | SYS_XQEXTRREF | SYS_XQEXVAL | SYS_XQFB2STR | 
SYS_XQFNBOOL | SYS_XQFNCMP | SYS_XQFNDATIM | SYS_XQFNLNAME
-    | SYS_XQFNNM | SYS_XQFNNSURI | SYS_XQFNPREDTRUTH | SYS_XQFNQNM | 
SYS_XQFNROOT | SYS_XQFORMATNUM | SYS_XQFTCONTAIN
-    | SYS_XQFUNCR | SYS_XQGETCONTENT | SYS_XQINDXOF | SYS_XQINSERT | 
SYS_XQINSPFX | SYS_XQIRI2URI | SYS_XQLANG
-    | SYS_XQLLNMFRMQNM | SYS_XQMKNODEREF | SYS_XQNILLED | SYS_XQNODENAME | 
SYS_XQNORMSPACE | SYS_XQNORMUCODE | SYS_XQNSP4PFX
-    | SYS_XQNSPFRMQNM | SYS_XQPFXFRMQNM | SYS_XQPOLYABS | SYS_XQPOLYADD | 
SYS_XQPOLYCEL | SYS_XQPOLYCST | SYS_XQPOLYCSTBL
-    | SYS_XQPOLYDIV | SYS_XQPOLYFLR | SYS_XQPOLYMOD | SYS_XQPOLYMUL | 
SYS_XQPOLYRND | SYS_XQPOLYSQRT | SYS_XQPOLYSUB
-    | SYS_XQPOLYUMUS | SYS_XQPOLYUPLS | SYS_XQPOLYVEQ | SYS_XQPOLYVGE | 
SYS_XQPOLYVGT | SYS_XQPOLYVLE | SYS_XQPOLYVLT
-    | SYS_XQPOLYVNE | SYS_XQREF2VAL | SYS_XQRENAME | SYS_XQREPLACE | 
SYS_XQRESVURI | SYS_XQRNDHALF2EVN | SYS_XQRSLVQNM
-    | SYS_XQRYENVPGET | SYS_XQRYVARGET | SYS_XQRYWRP | SYS_XQSEQ2CON | 
SYS_XQSEQ2CON4XC | SYS_XQSEQDEEPEQ | SYS_XQSEQINSB
-    | SYS_XQSEQRM | SYS_XQSEQRVS | SYS_XQSEQSUB | SYS_XQSEQTYPMATCH | 
SYS_XQSTARTSWITH | SYS_XQSTATBURI | SYS_XQSTR2CODEP
-    | SYS_XQSTRJOIN | SYS_XQSUBSTRAFT | SYS_XQSUBSTRBEF | SYS_XQTOKENIZE | 
SYS_XQTREATAS | SYS_XQXFORM | SYS_XQ_ASQLCNV
-    | SYS_XQ_ATOMCNVCHK | SYS_XQ_NRNG | SYS_XQ_PKSQL2XML | SYS_XQ_UPKXML2SQL | 
TABLESPACE_NO | TABLE_STATS | TABNO | TAN | TANH
-    | TEMP_TABLE | THE | THROUGH | TIMES | TIMEZONE_ABBR | TIMEZONE_HOUR | 
TIMEZONE_MINUTE | TIMEZONE_OFFSET | TIMEZONE_REGION
-    | TIV_GB | TIV_SSF | TOPLEVEL | TO_BINARY_DOUBLE | TO_BINARY_FLOAT | 
TO_BLOB | TO_CLOB | TO_DATE | TO_DSINTERVAL | TO_LOB
-    | TO_MULTI_BYTE | TO_NCHAR | TO_NCLOB | TO_NUMBER | TO_SINGLE_BYTE | 
TO_TIME | TO_TIMESTAMP | TO_TIMESTAMP_TZ | TO_TIME_TZ
-    | TO_YMINTERVAL | TRACING | TRAILING | TRANSFORM_DISTINCT_AGG | TRANSITION 
| TRANSITIONAL | TRUNC | TX | TZ_OFFSET | UB2
-    | UBA | UID | UNBOUND | UNISTR | UNLOCK | UNNEST | UNPACKED | UNRESTRICTED 
| UPDATABLE | UPDATEXML | UPD_INDEXES
-    | UPD_JOININDEX | UPPER | USER | USERENV | USERGROUP | USER_DEFINED | 
USER_RECYCLEBIN | USE_ANTI | USE_CONCAT | USE_HASH
-    | USE_HASH_AGGREGATION | USE_INVISIBLE_INDEXES | USE_MERGE | 
USE_MERGE_CARTESIAN | USE_NL | USE_NL_WITH_INDEX
-    | USE_PRIVATE_OUTLINES | USE_SEMI | USE_TTT_FOR_GSETS | USE_WEAK_NAME_RESL 
| VALIDATE | VALIDATION | VARIANCE | VAR_POP
-    | VAR_SAMP | VECTOR_READ | VECTOR_READ_TRACE | VERSIONING | 
VERSIONS_ENDSCN | VERSIONS_ENDTIME | VERSIONS_OPERATION
-    | VERSIONS_STARTSCN | VERSIONS_STARTTIME | VERSIONS_XID | VOLUME | VSIZE | 
WELLFORMED | WHENEVER | WHITESPACE
-    | WIDTH_BUCKET | WRAPPED | XID | XMLAGG | XMLATTRIBUTES | XMLCAST | 
XMLCDATA | XMLCOLATTVAL | XMLCOMMENT | XMLCONCAT | XMLDIFF
-    | XMLEXISTS | XMLEXISTS2 | XMLFOREST | XMLINDEX_REWRITE | 
XMLINDEX_REWRITE_IN_SELECT | XMLINDEX_SEL_IDX_TBL | XMLISNODE
-    | XMLISVALID | XMLNAMESPACES | XMLPARSE | XMLPATCH | XMLPI | XMLQUERY | 
XMLROOT | XMLSERIALIZE | XMLTABLE | XMLTOOBJECT
-    | XMLTRANSFORM | XMLTRANSFORMBLOB | XML_DML_RWT_STMT | XPATHTABLE | 
XS_SYS_CONTEXT | X_DYN_PRUNE | RESULT | TABLE | NUMBER | CHAR
-    | SQLCODE | TAB | TERM | NUM | INNER
+    : SELECT | INSERT | UPDATE | DELETE | CREATE | ALTER | DROP | TRUNCATE | 
SCHEMA | GRANT | REVOKE | ADD | SET | TABLE | COLUMN | INDEX | CONSTRAINT | 
PRIMARY | UNIQUE | FOREIGN | KEY | POSITION | PRECISION | FUNCTION | 
CONSTRUCTOR | RESULT | TRIGGER | MAP | PROCEDURE | SPECIFICATION | VIEW | INTO 
| VALUES | WITH | UNION | DISTINCT | CASE | WHEN | CAST | TRIM | SUBSTRING | 
FROM | NATURAL | JOIN | FULL | INNER | OUTER | LEFT | RIGHT | CROSS | USING | 
WHERE | AS | ON | IF | ELSE | ELSIF  [...]
+    | BEQUEATH | BINARY | ESCAPE | MOD | XOR | ROW | ROWS | UNKNOWN | ALWAYS | 
CASCADE | CHECK | CONVERSION | GENERATED | PRIVILEGES | READ | WRITE | 
REFERENCES | START | TRANSACTION | USER | ROLE | VISIBLE | INVISIBLE | EXECUTE 
| USE | DEBUG | UNDER | FLASHBACK | ARCHIVE | REFRESH | QUERY | REWRITE | KEEP 
| SEQUENCE | INHERIT | TRANSLATE | MERGE | AT | BITMAP | CACHE | NOCACHE | 
CHECKPOINT | CONNECT | CONSTRAINTS | CYCLE | NOCYCLE | DBTIMEZONE | ENCRYPT | 
DECRYPT | DEFERRABLE | DEFERRED [...]
+    | SINGLE_K | SINGLE_M | SINGLE_G | SINGLE_T | SINGLE_P | SINGLE_E | 
SINGLE_H
     ;
 
 schemaName
@@ -1794,11 +1548,11 @@ externalDatatype
     ;
 
 capacityUnit
-    : ('K' | 'M' | 'G' | 'T' | 'P' | 'E' | 'k' | 'm' | 'g' | 't' | 'p' | 'e')
+    : SINGLE_K | SINGLE_M | SINGLE_G | SINGLE_T | SINGLE_P | SINGLE_E
     ;
 
 timeUnit
-    : 'M' | 'H' | 'm' | 'h'
+    : SINGLE_M | SINGLE_H
     ;
 
 attributeDimensionName
@@ -1822,7 +1576,7 @@ characterSetName
     ;
 
 quotaUnit
-    : ('M' | 'G' | 'T' | 'P' | 'E')
+    : SINGLE_M | SINGLE_G | SINGLE_T | SINGLE_P | SINGLE_E
     ;
 
 siteName
@@ -2197,7 +1951,7 @@ delimSpec
      ;
 
 terminatedBySpec
-     : TERMINATED BY (STRING_ | WHITESPACE)
+     : TERMINATED BY (STRING_ |WHITESPACE)
      ;
 
 optionallyEnclosedBySpec
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
index b956d704c5c..a0475f231df 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
@@ -151,7 +151,7 @@ alterTrigger
     | RENAME TO name
     | (EDITIONABLE | NONEDITIONABLE)
     )
-    ;    
+    ;
 
 triggerCompileClause
     : COMPILE (
@@ -258,8 +258,8 @@ xmlTypeStorageClause
     ;
 
 xmlSchemaSpecClause
-    : (XMLSCHEMA xmlSchemaURLName)? ELEMENT (elementName | xmlSchemaURLName 
POUND_ elementName)? 
-      (STORE ALL VARRAYS AS (LOBS | TABLES))? 
+    : (XMLSCHEMA xmlSchemaURLName)? ELEMENT (elementName | xmlSchemaURLName 
POUND_ elementName)?
+      (STORE ALL VARRAYS AS (LOBS | TABLES))?
       ((ALLOW | DISALLOW) NONSCHEMA)?
       ((ALLOW | DISALLOW) ANYSCHEMA)?
     ;
@@ -294,7 +294,7 @@ createParentClause
     ;
 
 createObjectTableClause
-    : OF objectName objectTableSubstitution? 
+    : OF objectName objectTableSubstitution?
     (LP_ objectProperties RP_)? (ON COMMIT (DELETE | PRESERVE) ROWS)?
     oidClause? oidIndexClause? physicalProperties? tableProperties?
     ;
@@ -340,7 +340,7 @@ relationalProperty
     ;
 
 columnDefinition
-    : columnName REF? (dataType (COLLATE columnCollationName)?)? SORT? 
visibleClause (DEFAULT (ON NULL)? expr | identityClause)? 
+    : columnName REF? (dataType (COLLATE columnCollationName)?)? SORT? 
visibleClause (DEFAULT (ON NULL)? expr | identityClause)?
     ( ENCRYPT encryptionSpecification)? (inlineConstraint+ | 
inlineRefConstraint)?
     | REF LP_ columnName RP_ WITH ROWID
     | SCOPE FOR LP_ columnName RP_ IS identifier
@@ -412,7 +412,7 @@ virtualColumnDefinition
 outOfLineConstraint
     : (CONSTRAINT constraintName)?
     (UNIQUE columnNames
-    | primaryKey columnNames 
+    | primaryKey columnNames
     | FOREIGN KEY columnNames referencesClause
     | CHECK LP_ expr RP_
     ) constraintState?
@@ -610,9 +610,9 @@ tableAlias
 
 alterDefinitionClause
     : (alterTableProperties
+    | constraintClauses
     | columnClauses
     | moveTableClause
-    | constraintClauses
     | alterTablePartitioning invalidationSpecification?
     | alterExternalTable)?
     ;
@@ -670,7 +670,7 @@ addColumnSpecification
     ;
 
 columnOrVirtualDefinitions
-    : columnOrVirtualDefinition (COMMA_ columnOrVirtualDefinition)* 
+    : columnOrVirtualDefinition (COMMA_ columnOrVirtualDefinition)*
     ;
 
 columnOrVirtualDefinition
@@ -775,7 +775,7 @@ dropConstraintClause
     : DROP
     (
     constraintPrimaryOrUnique CASCADE? ((KEEP | DROP) INDEX)? | (CONSTRAINT 
constraintName CASCADE?)
-    ) 
+    )
     ;
 
 alterExternalTable
@@ -1055,9 +1055,9 @@ ilmInmemoryPolicy
     ;
 
 organizationClause
-    : ORGANIZATION 
-    ( HEAP segmentAttributesClause? heapOrgTableClause 
-    | INDEX segmentAttributesClause? indexOrgTableClause 
+    : ORGANIZATION
+    ( HEAP segmentAttributesClause? heapOrgTableClause
+    | INDEX segmentAttributesClause? indexOrgTableClause
     | EXTERNAL externalTableClause)
     ;
 
@@ -1104,7 +1104,7 @@ tableProperties
     ;
 
 readOnlyClause
-    : READ ONLY | READ WRITE 
+    : READ ONLY | READ WRITE
     ;
 
 indexingClause
@@ -1187,7 +1187,7 @@ lobParameters
         | lobDeduplicateClause
         | lobCompressionClause
         | (ENCRYPT encryptionSpecification | DECRYPT)
-        | (CACHE | NOCACHE | CACHE READS) loggingClause? 
+        | (CACHE | NOCACHE | CACHE READS) loggingClause?
       )+
     ;
 
@@ -1262,9 +1262,9 @@ lobPartitioningStorage
     ;
 
 compositeRangePartitions
-    : PARTITION BY RANGE columnNames 
+    : PARTITION BY RANGE columnNames
       (INTERVAL LP_ expr RP_ (STORE IN LP_? tablespaceName (COMMA_ 
tablespaceName)* RP_?)?)?
-      (subpartitionByRange | subpartitionByList | subpartitionByHash) 
+      (subpartitionByRange | subpartitionByList | subpartitionByHash)
       LP_? rangePartitionDesc (COMMA_ rangePartitionDesc)* RP_?
     ;
 
@@ -1307,9 +1307,9 @@ rangePartitionDesc
     ;
 
 compositeListPartitions
-    : PARTITION BY LIST columnNames 
+    : PARTITION BY LIST columnNames
       (AUTOMATIC (STORE IN LP_? tablespaceName (COMMA_ tablespaceName)* 
RP_?)?)?
-      (subpartitionByRange | subpartitionByList | subpartitionByHash) 
+      (subpartitionByRange | subpartitionByList | subpartitionByHash)
       LP_? listPartitionDesc (COMMA_ listPartitionDesc)* RP_?
     ;
 
@@ -1513,7 +1513,7 @@ modifyListPartition
 
 modifyTableSubpartition
     : MODIFY subpartitionExtendedName (allocateExtentClause
-    | deallocateUnusedClause | shrinkClause | ((LOB lobItem | VARRAY 
varrayType) LP_ modifylobParameters RP_)+ | REBUILD? UNUSABLE LOCAL INDEXES 
+    | deallocateUnusedClause | shrinkClause | ((LOB lobItem | VARRAY 
varrayType) LP_ modifylobParameters RP_)+ | REBUILD? UNUSABLE LOCAL INDEXES
     | (ADD | DROP) VALUES LP_ listValues RP_ | readOnlyClause | indexingClause)
     ;
 
@@ -1558,10 +1558,10 @@ alterMappingTableClauses
 alterView
     : ALTER VIEW viewName (
     | ADD LP_? outOfLineConstraint RP_?
-    | MODIFY CONSTRAINT constraintName (RELY | NORELY) 
-    | DROP (CONSTRAINT constraintName | PRIMARY KEY | UNIQUE columnNames) 
-    | COMPILE 
-    | READ (ONLY | WRITE) 
+    | MODIFY CONSTRAINT constraintName (RELY | NORELY)
+    | DROP (CONSTRAINT constraintName | PRIMARY KEY | UNIQUE columnNames)
+    | COMPILE
+    | READ (ONLY | WRITE)
     | (EDITIONABLE | NONEDITIONABLE)
     )
     ;
@@ -1617,9 +1617,9 @@ coalesceTablePartition
     ;
 
 addTablePartition
-    : ADD (PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION 
partitionName? addRangePartitionClause)* 
-    | PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION 
partitionName? addListPartitionClause)* 
-    | PARTITION partitionName? addSystemPartitionClause (COMMA_ PARTITION 
partitionName? addSystemPartitionClause)* (BEFORE? (partitionName | NUMBER_)?) 
+    : ADD (PARTITION partitionName? addRangePartitionClause (COMMA_ PARTITION 
partitionName? addRangePartitionClause)*
+    | PARTITION partitionName? addListPartitionClause (COMMA_ PARTITION 
partitionName? addListPartitionClause)*
+    | PARTITION partitionName? addSystemPartitionClause (COMMA_ PARTITION 
partitionName? addSystemPartitionClause)* (BEFORE? (partitionName | NUMBER_)?)
     | PARTITION partitionName? addHashPartitionClause) dependentTablesClause?
     ;
 
@@ -2051,7 +2051,7 @@ defaultSettingsClauses
     ;
 
 setTimeZoneClause
-    : SET TIME_ZONE EQ_ ((PLUS_ | MINUS_) dateValue | timeZoneRegion) 
+    : SET TIME_ZONE EQ_ ((PLUS_ | MINUS_) dateValue | timeZoneRegion)
     ;
 
 timeZoneRegion
@@ -2419,7 +2419,7 @@ defaultSelectivityClause
     ;
 
 disassociateStatistics
-    : DISASSOCIATE STATISTICS FROM 
+    : DISASSOCIATE STATISTICS FROM
     (COLUMNS tableName DOT_ columnName (COMMA_ tableName DOT_ columnName)*
     | FUNCTIONS function (COMMA_ function)*
     | PACKAGES packageName (COMMA_ packageName)*
@@ -2433,7 +2433,7 @@ audit
     ;
 
 auditTraditional
-    : AUDIT (auditOperationClause (auditingByClause | IN SESSION CURRENT)? | 
auditSchemaObjectClause | NETWORK | DIRECT_PATH LOAD auditingByClause?) 
+    : AUDIT (auditOperationClause (auditingByClause | IN SESSION CURRENT)? | 
auditSchemaObjectClause | NETWORK | DIRECT_PATH LOAD auditingByClause?)
     ( BY (SESSION | ACCESS))? (WHENEVER NOT? SUCCESSFUL)? (CONTAINER EQ_ 
(CURRENT | ALL))?
     ;
 
@@ -2447,19 +2447,19 @@ auditOperationClause
     ;
 
 sqlStatementShortcut
-    : ALTER SYSTEM | CLUSTER | CREATE CLUSTER | ALTER CLUSTER | DROP CLUSTER | 
TRUNCATE CLUSTER | CONTEXT | CREATE CONTEXT | DROP CONTEXT 
-    | DATABASE LINK | CREATE DATABASE LINK | ALTER DATABASE LINK | DROP 
DATABASE LINK | DIMENSION | CREATE DIMENSION | ALTER DIMENSION | DROP DIMENSION 
-    | DIRECTORY | CREATE DIRECTORY | DROP DIRECTORY | INDEX | CREATE INDEX | 
ALTER INDEX | ANALYZE INDEX | DROP INDEX 
-    | MATERIALIZED VIEW | CREATE MATERIALIZED VIEW | ALTER MATERIALIZED VIEW | 
DROP MATERIALIZED VIEW | NOT EXISTS | OUTLINE | CREATE OUTLINE | ALTER OUTLINE 
| DROP OUTLINE 
-    | PLUGGABLE DATABASE | CREATE PLUGGABLE DATABASE | ALTER PLUGGABLE 
DATABASE | DROP PLUGGABLE DATABASE 
-    | PROCEDURE | CREATE FUNCTION | CREATE LIBRARY | CREATE PACKAGE | CREATE 
PACKAGE BODY | CREATE PROCEDURE | DROP FUNCTION | DROP LIBRARY | DROP PACKAGE | 
DROP PROCEDURE 
-    | PROFILE | CREATE PROFILE | ALTER PROFILE | DROP PROFILE | PUBLIC 
DATABASE LINK | CREATE PUBLIC DATABASE LINK | ALTER PUBLIC DATABASE LINK | DROP 
PUBLIC DATABASE LINK 
-    | PUBLIC SYNONYM | CREATE PUBLIC SYNONYM | DROP PUBLIC SYNONYM | ROLE | 
CREATE ROLE | ALTER ROLE | DROP ROLE | SET ROLE 
-    | ROLLBACK SEGMENT | CREATE ROLLBACK SEGMENT | ALTER ROLLBACK SEGMENT | 
DROP ROLLBACK SEGMENT | SEQUENCE | CREATE SEQUENCE | DROP SEQUENCE | SESSION | 
SYNONYM | CREATE SYNONYM | DROP SYNONYM 
-    | SYSTEM AUDIT | SYSTEM GRANT | TABLE | CREATE TABLE | DROP TABLE | 
TRUNCATE TABLE | TABLESPACE | CREATE TABLESPACE | ALTER TABLESPACE | DROP 
TABLESPACE 
-    | TRIGGER | CREATE TRIGGER | ALTER TRIGGER | DROP TRIGGER | ALTER TABLE | 
TYPE | CREATE TYPE | CREATE TYPE BODY | ALTER TYPE | DROP TYPE | DROP TYPE BODY 
-    | USER | CREATE USER | ALTER USER | DROP USER | VIEW | CREATE VIEW | DROP 
VIEW 
-    | ALTER SEQUENCE | COMMENT TABLE | DELETE TABLE | EXECUTE DIRECTORY | 
EXECUTE PROCEDURE | GRANT DIRECTORY | GRANT PROCEDURE | GRANT SEQUENCE | GRANT 
TABLE | GRANT TYPE 
+    : ALTER SYSTEM | CLUSTER | CREATE CLUSTER | ALTER CLUSTER | DROP CLUSTER | 
TRUNCATE CLUSTER | CONTEXT | CREATE CONTEXT | DROP CONTEXT
+    | DATABASE LINK | CREATE DATABASE LINK | ALTER DATABASE LINK | DROP 
DATABASE LINK | DIMENSION | CREATE DIMENSION | ALTER DIMENSION | DROP DIMENSION
+    | DIRECTORY | CREATE DIRECTORY | DROP DIRECTORY | INDEX | CREATE INDEX | 
ALTER INDEX | ANALYZE INDEX | DROP INDEX
+    | MATERIALIZED VIEW | CREATE MATERIALIZED VIEW | ALTER MATERIALIZED VIEW | 
DROP MATERIALIZED VIEW | NOT EXISTS | OUTLINE | CREATE OUTLINE | ALTER OUTLINE 
| DROP OUTLINE
+    | PLUGGABLE DATABASE | CREATE PLUGGABLE DATABASE | ALTER PLUGGABLE 
DATABASE | DROP PLUGGABLE DATABASE
+    | PROCEDURE | CREATE FUNCTION | CREATE LIBRARY | CREATE PACKAGE | CREATE 
PACKAGE BODY | CREATE PROCEDURE | DROP FUNCTION | DROP LIBRARY | DROP PACKAGE | 
DROP PROCEDURE
+    | PROFILE | CREATE PROFILE | ALTER PROFILE | DROP PROFILE | PUBLIC 
DATABASE LINK | CREATE PUBLIC DATABASE LINK | ALTER PUBLIC DATABASE LINK | DROP 
PUBLIC DATABASE LINK
+    | PUBLIC SYNONYM | CREATE PUBLIC SYNONYM | DROP PUBLIC SYNONYM | ROLE | 
CREATE ROLE | ALTER ROLE | DROP ROLE | SET ROLE
+    | ROLLBACK SEGMENT | CREATE ROLLBACK SEGMENT | ALTER ROLLBACK SEGMENT | 
DROP ROLLBACK SEGMENT | SEQUENCE | CREATE SEQUENCE | DROP SEQUENCE | SESSION | 
SYNONYM | CREATE SYNONYM | DROP SYNONYM
+    | SYSTEM AUDIT | SYSTEM GRANT | TABLE | CREATE TABLE | DROP TABLE | 
TRUNCATE TABLE | TABLESPACE | CREATE TABLESPACE | ALTER TABLESPACE | DROP 
TABLESPACE
+    | TRIGGER | CREATE TRIGGER | ALTER TRIGGER | DROP TRIGGER | ALTER TABLE | 
TYPE | CREATE TYPE | CREATE TYPE BODY | ALTER TYPE | DROP TYPE | DROP TYPE BODY
+    | USER | CREATE USER | ALTER USER | DROP USER | VIEW | CREATE VIEW | DROP 
VIEW
+    | ALTER SEQUENCE | COMMENT TABLE | DELETE TABLE | EXECUTE DIRECTORY | 
EXECUTE PROCEDURE | GRANT DIRECTORY | GRANT PROCEDURE | GRANT SEQUENCE | GRANT 
TABLE | GRANT TYPE
     | INSERT TABLE | LOCK TABLE | READ DIRECTORY | SELECT SEQUENCE | SELECT 
TABLE | UPDATE TABLE | WRITE DIRECTORY
     ;
 
@@ -2518,7 +2518,7 @@ comment
 
 flashbackDatabase
     : FLASHBACK STANDBY? PLUGGABLE? DATABASE databaseName?
-    ( TO (scnTimestampClause | restorePointClause) 
+    ( TO (scnTimestampClause | restorePointClause)
     | TO BEFORE (scnTimestampClause | RESETLOGS))
     ;
 
@@ -2598,7 +2598,7 @@ defaultTablespace
     ;
 
 defaultTempTablespace
-    : bigOrSmallFiles? DEFAULT 
+    : bigOrSmallFiles? DEFAULT
     (TEMPORARY TABLESPACE | LOCAL TEMPORARY TABLESPACE FOR (ALL | LEAF)) 
tablespaceName
     (TEMPFILE fileSpecifications)? extentManagementClause?
     ;
@@ -2616,7 +2616,7 @@ extentManagementClause
     ;
 
 enablePluggableDatabase
-    : ENABLE PLUGGABLE DATABASE 
+    : ENABLE PLUGGABLE DATABASE
     (SEED fileNameConvert? (SYSTEM tablespaceDatafileClauses)? (SYSAUX 
tablespaceDatafileClauses)?)? undoModeClause?
     ;
 
@@ -2625,7 +2625,7 @@ fileNameConvert
     ;
 
 replaceFileNamePattern
-    : filenamePattern COMMA_ filenamePattern 
+    : filenamePattern COMMA_ filenamePattern
     ;
 
 tablespaceDatafileClauses
@@ -2633,7 +2633,7 @@ tablespaceDatafileClauses
     ;
 
 createDatabaseLink
-    : CREATE SHARED? PUBLIC? DATABASE LINK dbLink 
+    : CREATE SHARED? PUBLIC? DATABASE LINK dbLink
     (connectToClause | dbLinkAuthentication)* (USING connectString)?
     ;
 
@@ -2645,7 +2645,7 @@ alterDatabaseLink
     ;
 
 dropDatabaseLink
-    : DROP PUBLIC? DATABASE LINK dbLink 
+    : DROP PUBLIC? DATABASE LINK dbLink
     ;
 
 connectToClause
@@ -2689,8 +2689,8 @@ alterDimensionAddClause
     ;
 
 alterDimensionDropClause
-    : DROP (LEVEL level (RESTRICT | CASCADE)? 
-    | HIERARCHY hierarchyName 
+    : DROP (LEVEL level (RESTRICT | CASCADE)?
+    | HIERARCHY hierarchyName
     | ATTRIBUTE attributeName (LEVEL level (COLUMN columnName (COMMA_ COLUMN 
columnName)*)?)?)
     ;
 
@@ -2743,7 +2743,7 @@ deterministicClause
     ;
 
 parallelEnableClause
-    : PARALLEL_ENABLE (LP_ PARTITION argument BY (ANY 
+    : PARALLEL_ENABLE (LP_ PARTITION argument BY (ANY
     | (HASH | RANGE) LP_ columnName (COMMA_ columnName)* RP_ streamingCluase?
     | VALUE LP_ columnName RP_) RP_)?
     ;
@@ -2761,7 +2761,7 @@ aggregateClause
     ;
 
 pipelinedClause
-    : PIPELINED ((USING implementationType)? 
+    : PIPELINED ((USING implementationType)?
     | (ROW | TABLE) POLYMORPHIC (USING implementationPackage)?)
     ;
 
@@ -2778,15 +2778,15 @@ javaDeclaration
     ;
 
 cDeclaration
-    : (LANGUAGE SINGLE_C | EXTERNAL) 
-    ((NAME name)? LIBRARY libName| LIBRARY libName (NAME name)?) 
+    : (LANGUAGE SINGLE_C | EXTERNAL)
+    ((NAME name)? LIBRARY libName| LIBRARY libName (NAME name)?)
     (AGENT IN RP_ argument (COMMA_ argument)* LP_)?
     (WITH CONTEXT)?
     (PARAMETERS LP_ externalParameter (COMMA_ externalParameter)* RP_)?
     ;
 
 externalParameter
-    : (CONTEXT 
+    : (CONTEXT
     | SELF (TDO | property)?
     | (parameterName | RETURN) property? (BY REFERENCE)? externalDatatype)
     ;
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
index fb638f7fde2..4e08ec232d0 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/DMLStatement.g4
@@ -48,7 +48,8 @@ conditionalInsertElsePart
     ;
 
 insertIntoClause
-    : INTO dmlTableExprClause alias? columnNames?
+    : INTO dmlTableExprClause
+    | INTO dmlTableExprClause alias? columnNames?
     ;
 
 insertValuesClause
@@ -106,7 +107,7 @@ updateSetColumnList
     ;
 
 updateSetColumnClause
-    : (LP_ columnName (COMMA_ columnName)* RP_ EQ_ LP_ selectSubquery RP_) 
+    : (LP_ columnName (COMMA_ columnName)* RP_ EQ_ LP_ selectSubquery RP_)
     | (columnName EQ_ (expr | LP_ selectSubquery RP_ | DEFAULT))
     ;
 
@@ -224,7 +225,7 @@ invokerRightsClause
     ;
 
 subqueryFactoringClause
-    : queryName (LP_ alias (COMMA_ alias)* RP_)? AS LP_ selectSubquery RP_ 
searchClause? cycleClause? 
+    : queryName (LP_ alias (COMMA_ alias)* RP_)? AS LP_ selectSubquery RP_ 
searchClause? cycleClause?
     ;
 
 searchClause
@@ -372,7 +373,7 @@ hierNavigationExpression
     ;
 
 hierAncestorExpression
-    : HIER_ANCESTOR LP_ memberExpression AT (LEVEL levelRef | DEPTH 
depthExpression) RP_ 
+    : HIER_ANCESTOR LP_ memberExpression AT (LEVEL levelRef | DEPTH 
depthExpression) RP_
     ;
 
 hierParentExpression
@@ -447,7 +448,8 @@ fromClauseOption
     ;
 
 selectTableReference
-    : (queryTableExprClause | containersClause | shardsClause) alias?
+    : queryTableExprClause | containersClause | shardsClause
+    | (queryTableExprClause | containersClause | shardsClause) alias?
     ;
 
 queryTableExprClause
@@ -498,7 +500,7 @@ inlineExternalTableProperties
     ;
 
 externalTableDataProperties
-    : (DEFAULT DIRECTORY directoryName)? (ACCESS PARAMETERS 
((opaqueFormatSpec) | USING CLOB subquery))? 
+    : (DEFAULT DIRECTORY directoryName)? (ACCESS PARAMETERS 
((opaqueFormatSpec) | USING CLOB subquery))?
     (LOCATION LP_ (directoryName COLON_)? locationSpecifier (COMMA_ 
(directoryName COLON_)? locationSpecifier)+ RP_)?
     ;
 
@@ -507,7 +509,7 @@ mofifiedExternalTable
     ;
 
 modifyExternalTableProperties
-    : (DEFAULT DIRECTORY directoryName)? (LOCATION LP_ (directoryName COLON_)? 
SQ_ locationSpecifier SQ_ (COMMA_ (directoryName COLON_)? SQ_ locationSpecifier 
SQ_)* RP_)? 
+    : (DEFAULT DIRECTORY directoryName)? (LOCATION LP_ (directoryName COLON_)? 
SQ_ locationSpecifier SQ_ (COMMA_ (directoryName COLON_)? SQ_ locationSpecifier 
SQ_)* RP_)?
     (ACCESS PARAMETERS (BADFILE fileName | LOGFILE fileName | DISCARDFILE 
fileName))? (REJECT LIMIT (INTEGER_ | UNLIMITED))?
     ;
 
@@ -666,11 +668,14 @@ modelIterateClause
     ;
 
 cellAssignment
-    : measureColumn LBT_ (((condition | expr | singleColumnForLoop) (COMMA_ 
(condition | expr | singleColumnForLoop))*) | multiColumnForLoop) RBT_
+    : measureColumn LBT_ (
+        multiColumnForLoop
+        | ((condition | expr | singleColumnForLoop) (COMMA_ (condition | expr 
| singleColumnForLoop))*)
+    ) RBT_
     ;
 
 singleColumnForLoop
-    : FOR dimensionColumn ((IN LP_ ((literals (COMMA_ literals)*) | 
selectSubquery) RP_) 
+    : FOR dimensionColumn ((IN LP_ ((literals (COMMA_ literals)*) | 
selectSubquery) RP_)
     | ((LIKE pattern)? FROM literals TO literals (INCREMENT | DECREMENT) 
literals))
     ;
 
@@ -684,8 +689,8 @@ subquery
     ;
 
 modelExpr
-    : (numberLiterals ASTERISK_)? ((measureColumn LBT_ (condition | expr) 
(COMMA_ (condition | expr))* RBT_) 
-    | (aggregationFunction LBT_ (((condition | expr) (COMMA_ (condition | 
expr))*) | (singleColumnForLoop (COMMA_ singleColumnForLoop)*) | 
multiColumnForLoop) RBT_) 
+    : (numberLiterals ASTERISK_)? ((measureColumn LBT_ (condition | expr) 
(COMMA_ (condition | expr))* RBT_)
+    | (aggregationFunction LBT_ (((condition | expr) (COMMA_ (condition | 
expr))*) | (singleColumnForLoop (COMMA_ singleColumnForLoop)*) | 
multiColumnForLoop) RBT_)
     | analyticFunction) ((PLUS_ | SLASH_) LP_? modelExpr* RP_? | ASTERISK_ 
numberLiterals (ASTERISK_ modelExpr)?)?
     | expr
     ;
@@ -785,7 +790,7 @@ rowPatternRowsPerMatch
     ;
 
 rowPatternSkipTo
-    : AFTER MATCH SKIP_SYMBOL ((TO NEXT | PAST LAST) ROW 
+    : AFTER MATCH SKIP_SYMBOL ((TO NEXT | PAST LAST) ROW
     | TO (FIRST | LAST)? variableName)
     ;
 
@@ -846,9 +851,9 @@ rowPatternRecFunc
     ;
 
 patternMeasExpression
-    : stringLiterals 
-    | numberLiterals 
-    | columnName 
+    : stringLiterals
+    | numberLiterals
+    | columnName
     | rowPatternRecFunc
     ;
 
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
index 47e1bc5ceb3..5021461b4fe 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/Literals.g4
@@ -59,10 +59,6 @@ UCHAR_TEXT
     : U STRING_
     ;
 
-BYTE_UNIT
-    : K | M | G | T | P | E
-    ;
-
 fragment INT_
     : [0-9]+
     ;
diff --git 
a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
index d5c1128b5ae..5fd42845599 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/OracleKeyword.g4
@@ -1281,7 +1281,7 @@ ROWDEPENDENCIES
 
 NOROWDEPENDENCIES
     : N O R O W D E P E N D E N C I E S
-    ; 
+    ;
 
 ARCHIVAL
     : A R C H I V A L
@@ -2747,6 +2747,34 @@ SINGLE_C
     : C
     ;
 
+SINGLE_K
+    : K
+    ;
+
+SINGLE_M
+    : M
+    ;
+
+SINGLE_G
+    : G
+    ;
+
+SINGLE_T
+    : T
+    ;
+
+SINGLE_P
+    : P
+    ;
+
+SINGLE_E
+    : E
+    ;
+
+SINGLE_H
+    : H
+    ;
+
 SYSTIMESTAMP
     : S Y S T I M E S T A M P
     ;
diff --git a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4 
b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
index 6ea8c4b6a62..31f226bf60a 100644
--- a/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
+++ b/parser/sql/dialect/oracle/src/main/antlr4/imports/oracle/PLSQL.g4
@@ -20,7 +20,7 @@ grammar PLSQL;
 import Keyword, BaseRule, DDLStatement, DMLStatement, TCLStatement;
 
 call
-    : CALL 
+    : CALL
     ;
 
 alterProcedure
@@ -515,7 +515,7 @@ cursorVariableDeclaration
     ;
 
 exceptionDeclaration
-    : variableName (EXCEPTION SEMI_)?
+    : variableName EXCEPTION SEMI_
     ;
 
 recordVariableDeclaration
@@ -579,7 +579,7 @@ pragma
     ;
 
 exceptionInitPragma
-    : (PRAGMA EXCEPTION_INIT LP_ exceptionDeclaration COMMA_ errorCode RP_ 
SEMI_)+
+    : (PRAGMA EXCEPTION_INIT LP_ (exceptionDeclaration | variableName) COMMA_ 
errorCode RP_ SEMI_)+
     ;
 
 errorCode
diff --git 
a/parser/sql/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
 
b/parser/sql/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
index f92e3a1d43d..937d05ee1eb 100644
--- 
a/parser/sql/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
+++ 
b/parser/sql/dialect/oracle/src/test/java/org/apache/shardingsphere/test/it/sql/parser/it/oracle/internal/InternalUnsupportedOracleParserIT.java
@@ -19,7 +19,9 @@ package 
org.apache.shardingsphere.test.it.sql.parser.it.oracle.internal;
 
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.InternalSQLParserITSettings;
 import 
org.apache.shardingsphere.test.it.sql.parser.internal.InternalUnsupportedSQLParserIT;
+import org.junit.jupiter.api.Disabled;
 
+@Disabled
 @InternalSQLParserITSettings("Oracle")
 class InternalUnsupportedOracleParserIT extends InternalUnsupportedSQLParserIT 
{
 }

Reply via email to