zhujunxxxxx commented on a change in pull request #10214:
URL: https://github.com/apache/shardingsphere/pull/10214#discussion_r623127443



##########
File path: 
shardingsphere-sql-parser/shardingsphere-sql-parser-dialect/shardingsphere-sql-parser-oracle/src/main/antlr4/imports/oracle/DDLStatement.g4
##########
@@ -1132,3 +1132,278 @@ rowArchivalVisibilityClause
 defaultCollationClause
     : DEFAULT_COLLATION EQ_ (collationName | NONE)
     ;
+
+alterDatabase
+    : ALTER DATABASE databaseName?
+    ( startupClauses
+    | recoveryClauses
+    | databaseFileClauses
+    | logfileClauses
+    | controlfileClauses
+    | standbyDatabaseClauses
+    | defaultSettingsClauses
+    | instanceClauses
+    | securityClause
+    | prepareClause
+    | dropMirrorCopy
+    | lostWriteProtection
+    | cdbFleetClauses
+    | propertyClause )
+    ;
+
+startupClauses
+    : MOUNT ((STANDBY | CLONE) DATABASE)?
+    | OPEN ((READ WRITE)? (RESETLOGS | NORESETLOGS)? (UPGRADE | DOWNGRADE)? | 
READ ONLY)
+    ;
+
+recoveryClauses
+    : generalRecovery | managedStandbyRecovery | BEGIN BACKUP | END BACKUP
+    ;
+
+generalRecovery
+    : RECOVER (AUTOMATIC)? (FROM locationName)? (
+      (fullDatabaseRecovery | partialDatabaseRecovery | LOGFILE fileName)
+      ((TEST | ALLOW NUMBER_ CORRUPTION | parallelClause)+)?
+    | CONTINUE DEFAULT?
+    | CANCEL
+    )
+    ;
+
+fullDatabaseRecovery
+    : STANDBY? DATABASE
+    ((UNTIL (CANCEL | TIME dateValue | CHANGE NUMBER_ | CONSISTENT)
+    | USING BACKUP CONTROLFILE
+    | SNAPSHOT TIME dateValue
+    )+)?
+    ;
+
+dateValue
+    : dateTimeLiterals | stringLiterals | numberLiterals | expr
+    ;
+
+partialDatabaseRecovery
+    : TABLESPACE tablespaceName (COMMA_ tablespaceName)*
+    | DATAFILE (fileName | fileNumber) (COMMA_ (fileName | fileNumber))*
+    ;
+
+managedStandbyRecovery
+    : RECOVER (MANAGED STANDBY DATABASE
+    ((USING ARCHIVED LOGFILE | DISCONNECT (FROM SESSION)?
+    | NODELAY
+    | UNTIL CHANGE NUMBER_
+    | UNTIL CONSISTENT | USING INSTANCES (ALL | NUMBER_) | parallelClause)+
+    | FINISH | CANCEL)?
+    | TO LOGICAL STANDBY (databaseName | KEEP IDENTITY))
+    ;
+
+databaseFileClauses
+    : RENAME FILE fileName (COMMA_ fileName)* TO fileName
+    | createDatafileClause
+    | alterDatafileClause
+    | alterTempfileClause
+    | moveDatafileClause
+    ;
+
+createDatafileClause
+    : CREATE DATAFILE (fileName | fileNumber) (COMMA_ (fileName | fileNumber))*
+    ( AS (fileSpecification (COMMA_ fileSpecification)* | NEW))?
+    ;
+
+fileSpecification
+    : datafileTempfileSpec | redoLogFileSpec
+    ;
+
+datafileTempfileSpec
+    : (fileName | asmFileName )? (SIZE sizeClause)? REUSE? autoextendClause?
+    ;
+
+autoextendClause
+    : AUTOEXTEND (OFF | ON (NEXT sizeClause)? maxsizeClause?)
+    ;
+
+redoLogFileSpec
+    : ((fileName | asmFileName)
+    | LP_ (fileName | asmFileName) (COMMA_ (fileName | asmFileName))* RP_)?
+    (SIZE sizeClause)? (BLOCKSIZE sizeClause)? REUSE?
+    ;
+
+alterDatafileClause
+    : DATAFILE (fileName | NUMBER_) (COMMA_ (fileName | NUMBER_))*
+    (ONLINE | OFFLINE (FOR DROP)? | RESIZE sizeClause | autoextendClause | END 
BACKUP | ENCRYPT | DECRYPT)
+    ;
+
+alterTempfileClause
+    : TEMPFILE fileName (COMMA_ fileName )*
+    (RESIZE sizeClause | autoextendClause | DROP (INCLUDING DATAFILES)? | 
ONLINE | OFFLINE)
+    ;
+
+logfileClauses
+    : ((ARCHIVELOG MANUAL? | NOARCHIVELOG )
+    | NO? FORCE LOGGING
+    | SET STANDBY NOLOGGING FOR (DATA AVAILABILITY | LOAD PERFORMANCE)
+    | RENAME FILE fileName (COMMA_ fileName)* TO fileName
+    | CLEAR UNARCHIVED? LOGFILE logfileDescriptor (COMMA_ logfileDescriptor)* 
(UNRECOVERABLE DATAFILE)?
+    | addLogfileClauses
+    | dropLogfileClauses
+    | switchLogfileClause
+    | supplementalDbLogging)
+    ;
+
+logfileDescriptor
+    : GROUP NUMBER_ | LP_ fileName (COMMA_ fileName)* RP_ | fileName
+    ;
+
+addLogfileClauses
+    : ADD STANDBY? LOGFILE
+    (((INSTANCE instanceName)? | (THREAD SQ_ NUMBER_ SQ_)?)
+    (GROUP NUMBER_)? redoLogFileSpec (COMMA_ (GROUP NUMBER_)? redoLogFileSpec)*
+    | MEMBER fileName REUSE? (COMMA_ fileName REUSE?)* TO logfileDescriptor 
(COMMA_ logfileDescriptor)*)
+    ;
+
+controlfileClauses
+    : CREATE ((LOGICAL | PHYSICAL)? STANDBY | FAR SYNC INSTANCE) CONTROLFILE 
AS fileName REUSE?
+    | BACKUP CONTROLFILE TO (fileName REUSE? | traceFileClause)
+    ;
+
+traceFileClause
+    : TRACE (AS fileName REUSE?)? (RESETLOGS | NORESETLOGS)?
+    ;
+
+dropLogfileClauses
+    : DROP STANDBY? LOGFILE
+    (logfileDescriptor (COMMA_ logfileDescriptor)*
+    | MEMBER fileName (COMMA_ fileName)*)
+    ;
+
+switchLogfileClause
+    : SWITCH ALL LOGFILES TO BLOCKSIZE NUMBER_
+    ;
+
+supplementalDbLogging
+    : (ADD | DROP) SUPPLEMENTAL LOG
+    ( DATA
+    | supplementalIdKeyClause
+    | supplementalPlsqlClause
+    | supplementalSubsetReplicationClause)
+    ;
+
+supplementalPlsqlClause
+    : DATA FOR PROCEDURAL REPLICATION
+    ;
+
+supplementalSubsetReplicationClause
+    : DATA SUBSET DATABASE REPLICATION
+    ;
+
+standbyDatabaseClauses
+    : ((activateStandbyDbClause
+    | maximizeStandbyDbClause
+    | registerLogfileClause
+    | commitSwitchoverClause
+    | startStandbyClause
+    | stopStandbyClause
+    | convertDatabaseClause parallelClause?)
+    | (switchoverClause | failoverClause))
+    ;
+
+activateStandbyDbClause
+    : ACTIVATE (PHYSICAL | LOGICAL)? STANDBY DATABASE (FINISH APPLY)?
+    ;
+
+maximizeStandbyDbClause
+    : SET STANDBY DATABASE TO MAXIMIZE (PROTECTION | AVAILABILITY | 
PERFORMANCE)
+    ;
+
+registerLogfileClause
+    : REGISTER (OR REPLACE)? (PHYSICAL | LOGICAL)? LOGFILE fileSpecification 
(COMMA_ fileSpecification)* (FOR logminerSessionName)?
+    ;
+
+commitSwitchoverClause
+    : (PREPARE | COMMIT) TO SWITCHOVER
+    ( TO (((PHYSICAL | LOGICAL)? PRIMARY | PHYSICAL? STANDBY) ((WITH | 
WITHOUT) SESSION SHUTDOWN (WAIT | NOWAIT))?
+    | LOGICAL STANDBY)
+    | CANCEL
+    )?
+    ;
+
+startStandbyClause
+    : START LOGICAL STANDBY APPLY IMMEDIATE? NODELAY? (NEW PRIMARY dbLink | 
(SKIP_SYMBOL FAILED TRANSACTION | FINISH))?
+    ;
+
+stopStandbyClause
+    : (STOP | ABORT) LOGICAL STANDBY APPLY
+    ;
+
+switchoverClause
+    : SWITCHOVER TO databaseName (VERIFY | FORCE)?
+    ;
+
+convertDatabaseClause
+    : CONVERT TO LP_ (PHYSICAL | SNAPSHOT) RP_ STANDBY
+    ;
+
+failoverClause
+    : FAILOVER TO databaseName FORCE?
+    ;
+
+defaultSettingsClauses
+    : DEFAULT EDITION EQ_ editionName
+    | SET DEFAULT (BIGFILE | SMALLFILE) TABLESPACE
+    | DEFAULT TABLESPACE tablespaceName
+    | DEFAULT LOCAL? TEMPORARY TABLESPACE (tablespaceName | 
tablespaceGroupName)
+    | ENABLE BLOCK CHANGE TRACKING (USING FILE fileName REUSE?)?
+    | DISABLE BLOCK CHANGE TRACKING
+    | NO? FORCE FULL DATABASE CACHING
+    | CONTAINERS DEFAULT TARGET EQ_ (LP_ containerName RP_ | NONE)
+    | flashbackModeClause
+    | undoModeClause
+    ;
+
+flashbackModeClause
+    : FLASHBACK (ON | OFF)
+    ;
+
+undoModeClause
+    : LOCAL UNDO (ON | OFF)
+    ;
+
+moveDatafileClause
+    : MOVE DATAFILE LP_ (fileName | asmFileName | fileNumber) RP_
+    (TO LP_ (fileName | asmFileName) RP_ )? REUSE? KEEP?
+    ;

Review comment:
       `fileName` define in baseRule used `STRING_`, so did't add `SQ_`.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to