| Command | ::= | ( sql_command | <TEMPORAL> temporal_command ) |
| sql_command | ::= | alter_command |
| | | transaction_command | |
| | | set_role_command | |
| | | comment_command | |
| | | create_command | |
| | | drop_command | |
| | | rename_command | |
| | | analyze_command | |
| | | explain_command | |
| | | audit_command | |
| | | noaudit_command | |
| | | grant_command | |
| | | revoke_command | |
| | | select_command | |
| | | insert_command | |
| | | update_command | |
| | | delete_command | |
| | | truncate_command | |
| | | lock_command | |
| alter_command | ::= | alter_system |
| | | ( <ALTER> ( alter_cluster | alter_index | alter_database | alter_resource | alter_role | alter_rollback | alter_sequence | alter_session | ( <SNAPSHOT> ( alter_snapshot | alter_snapshot_log ) ) | alter_table | alter_tablespace | alter_trigger | alter_user | alter_view alter_profile ) ) | |
| alter_system | ::= | ( ( <ENABLE> ( ( <RESTRICTED> <SESSION> ) | ( <DISTRIBUTED> <RECOVERY> ) ) ) | ( <DISABLE> ( ( <RESTRICTED> <SESSION> ) | ( <DISTRIBUTED> <RECOVERY> ) ) ) | ( <FLUSH> <SHARED_POOL> ) | ( ( <CHECKPOINT> | ( <CHECK> <DATAFILES> ) ) ( <GLOBAL> | <LOCAL> )? ) | ( <SET> ( system_spec )+ ) | ( <SWITCH> <LOGFILE> ) | ( <ARCHIVE> <LOG> archive_log_spec ) | ( <KILL> <SESSION> n "," n ) ) |
| system_spec | ::= | ( ( ( <RESOURCE_LIMIT> | <GLOBAL_NAMES> ) "=" ( <TRUE> | <FALSE> ) ) | ( <MTS_SERVERS> "=" n ) | ( <MTS_DISPATCHER> "=" protocol "," n ) | ( <LICENSED_MAX_SESSIONS> "=" n ) | ( <LICENSED_SESSIONS_WARNING> "=" n ) | ( <LICENSED_MAX_USERS> "=" n ) ) |
| alter_user_spec | ::= | ( ( <IDENTIFIED> <BY> password ) | ( <DEFAULT_TOKEN> ( ( <TABLESPACE> tablespace_name ) | ( ( role_list | ( <ALL> ( <EXCEPT> role_list )? ) | ( <NONE> ) ) ) ) ) | ( <TEMPORARY> <TABLESPACE> tablespace_name ) | ( <QUOTA> ( ( ( n "k" ) | "m" ) | <UNLIMITED> ) <ON> tablespace_name ) | ( <PROFILE> profile_name ) ) |
| schema_name | ::= | <IDENTIFIER> |
| cluster_name | ::= | <IDENTIFIER> |
| alter_cluster_spec | ::= | ( <PCTUSED> n ) |
| | | ( <PCTFREE> n ) | |
| | | ( <SIZE> n ( "k" | "m" )? ) | |
| | | ( <INITTRANS> n ) | |
| | | ( <MAXTRANS> n ) | |
| | | ( <STORAGE> "(" ( storage_spec )+ ")" ) | |
| | | ( <ALLOCATE> <EXTENT> ( allocate_spec )* ) | |
| allocate_spec | ::= | ( <SIZE> n ( "k" | "m" )? ) |
| | | ( <DATAFILE> "\'" file_name "\'" ) | |
| | | ( <INSTANCE> n ) | |
| storage_spec | ::= | ( <INITIAL> n ( "k" | "m" )? ) |
| | | ( <NEXT> n ( "k" | "m" )? ) | |
| | | ( <MINEXTENTS> n ) | |
| | | ( <MAXEXTENTS> n ) | |
| | | ( <PCTINCREASE> n ) | |
| | | ( <OPTIMAL> ( <NULL> | ( n ( "k" | "m" )? ) ) ) | |
| | | ( <FREELIST> ( n | ( <GROUPS> n ) ) ) | |
| file_name | ::= | file_name_in_your_system |
| file_name_in_your_system | ::= | <IDENTIFIER> |
| recover_clause | ::= | <RECOVER> ( <AUTOMATIC> )? ( <FROM> "\'" file_name "\'" )? ( ( <TABLESPACE> tablespace_list ) | ( <DATAFILE> file_list ) | ( <LOGFILE> file_name ) | ( <CONTINUE> ( <DEFAULT_TOKEN> )? ) | ( <CANCEL> ) | ( ( <DATABASE> )? ( until_spec )? ) ) |
| database_name | ::= | <IDENTIFIER> |
| domain_name | ::= | <IDENTIFIER> |
| until_spec | ::= | ( <UNTIL> ( <CANCEL> | ( <TIME> date ) | ( <CHANGE> n ) ) ) |
| | | ( <USING> <BACKUP> <CONTROLFILE> ) | |
| date | ::= | <STRING_LITERAL> |
| temporal_duration_specification | ::= | <STRING_LITERAL> |
| analyze_command | ::= | <ANALYZE> ( ( <INDEX> ( schema_name "." )? index_name ) | ( <TABLE> schema_table_name ) | ( <CLUSTER> ( schema_name "." )? cluster_name ) ) analyze_spec |
| tablespace_list | ::= | tablespace_name ( "," tablespace_name )* |
| tablespace_name | ::= | <IDENTIFIER> |
| file_list | ::= | "\'" file_name "\'" ( "," "\'" file_name "\'" )* |
| logfile_clause | ::= | ( <THREAD> n )? group_file_spec ( "," group_file_spec )* |
| group_file_spec | ::= | ( <GROUP> n )? file_spec_redo |
| file_spec_redo | ::= | ( "\'" file_name "\'" | "(" file_list ")" ) ( <SIZE> n ( "k" | "m" )? )? ( <REUSE> )? |
| logmember_clause | ::= | file_reuse_list <TO> group_file |
| file_reuse_list | ::= | file_reuse ( "," file_reuse )* |
| file_reuse | ::= | "\'" file_name "\'" ( <REUSE> )? |
| group_file | ::= | ( <GROUP> n ) |
| | | ( "\'" file_name "\'" ( "(" file_list ")" ) ) | |
| group_file_list | ::= | group_file ( "," group_file )* |
| file_spec_list | ::= | file_spec ( "," file_spec ) |
| file_spec | ::= | "\'" file_name "\'" ( <SIZE> n ( "k" | "m" )? )? ( <REUSE> )? |
| index_name | ::= | <IDENTIFIER> |
| alter_index_spec | ::= | ( <INITRANS> n ) |
| | | ( <MAXTRANS> n ) | |
| | | ( <STORAGE> "(" ( storage_spec )+ ")" ) | |
| profile_name | ::= | <IDENTIFIER> |
| profile_spec | ::= | ( resource_name ( n | <UNLIMITED> | <DEFAULT_TOKEN> ) ) |
| | | ( <PRIVATE_SGA> ( ( n ( "k" | "m" )? ) | <UNLIMITED> | <DEFAULT_TOKEN> ) ) | |
| resource_name | ::= | <SESSIONS_PER_USER> |
| | | <CPU_PER_SESSION> | |
| | | <CPU_PER_CALL> | |
| | | <CONNECT_TIME> | |
| | | <IDLE_TIME> | |
| | | <LOGICAL_READS_PER_SESSION> | |
| | | <LOGICAL_READS_PER_CALL> | |
| | | <COMPOSITE_LIMIT> | |
| resource_cost_name | ::= | <CPU_PER_SESSION> |
| | | <CONNECT_TIME> | |
| | | <PRIVATE_SGA> | |
| role_name | ::= | <IDENTIFIER> |
| password | ::= | <IDENTIFIER> |
| rollback_name | ::= | <IDENTIFIER> |
| sequence_name | ::= | <IDENTIFIER> |
| alter_sequence_spec | ::= | ( ( <INCREMENT> <BY> n ) | ( <MAXVALUE> n ) | <NOMAXVALUE> | ( <MINVALUE> n ) | <NOMINVALUE> | ( <CYCLE> | <NOCYCLE> ) | ( <CACHE> n ) | <NOCACHE> | ( <ORDER> | <NOORDER> ) ) |
| create_sequence_spec | ::= | ( ( <INCREMENT> <BY> n ) | ( <START> <WITH> n ) | ( <MAXVALUE> n ) | <NOMAXVALUE> | ( <MINVALUE> n ) | <NOMINVALUE> | ( <CYCLE> | <NOCYCLE> ) | ( <CACHE> n ) | <NOCACHE> | ( <ORDER> | <NOORDER> ) ) |
| link_name | ::= | <IDENTIFIER> |
| sort_name | ::= | <IDENTIFIER> |
| set_session_spec | ::= | ( ( ( <SQL_TRACE> | <GLOBAL_NAMES> ) "=" ( <TRUE> | <FALSE> ) ) | ( <NLS_LANGUAGE> "=" language_name ) | ( <NLS_TERRITORY> "=" territory_name ) | ( <NLS_DATE_FORMAT> "=" date_format ) | ( <NLS_DATE_LANGUAGE> "=" language_name ) | ( <NLS_NUMERIC_CHARACTER> "=" quoted_string ) | ( <NLS_ISO_CURRENCY> "=" territory_name ) | ( <NLS_CURRENCY> "=" quoted_string ) | ( <NLS_SORT> "=" ( sort_name | <BINARY> ) ) | ( <OPTIMIZER> <GOAL> "=" ( <ALL_ROWS> | <FIRST_ROWS> | <CHOOSE> | <RULE> ) ) ) |
| snapshot_name | ::= | <IDENTIFIER> |
| storage_parameter | ::= | ( <PCTFREE> n ) |
| | | ( <PCTUSED> n ) | |
| | | ( <SIZE> n ( "k" | "m" )? ) | |
| | | ( <INITTRANS> n ) | |
| | | ( <MAXTRANS> n ) | |
| | | ( <STORAGE> "(" ( storage_spec )+ ")" ) | |
| table_name | ::= | <IDENTIFIER> |
| column_name | ::= | <IDENTIFIER> |
| alter_table_spec | ::= | ( ( <ADD> "(" ( new_column_list | new_constraint_list ) ")" ) | ( <MODIFY> "(" modified_column_list ")" ) | ( <DROP> <CONSTRAINT> "(" constraint_list ")" ) | ( ( storage_parameter )+ ) | ( <ALLOCATE> <EXTENT> ( allocate_spec )? ) | ( <ENABLE> enable_spec ) | ( <DISABLE> disable_spec ) ) |
| new_column_list | ::= | column_name datatype ( <DEFAULT_TOKEN> expression )? ( column_constraint )* ( "," column_name datatype ( <DEFAULT_TOKEN> expression )? ( column_constraint )* )* |
| new_constraint_list | ::= | table_constraint ( "," table_constraint )* |
| object_name | ::= | <IDENTIFIER> |
| procedure_name | ::= | <IDENTIFIER> |
| n | ::= | <INTEGER_LITERAL> |
| new_name | ::= | <IDENTIFIER> |
| old_name | ::= | <IDENTIFIER> |
| synonym | ::= | <IDENTIFIER> |
| user_list | ::= | user_name ( "," user_name )* |
| role_list | ::= | role_name ( "," role_name )* |
| column_list | ::= | column_name ( "," column_name )* |
| value_list | ::= | <VALUES> "(" value ( "," value )* ")" |
| user_name | ::= | <IDENTIFIER> |
| self | ::= | <IDENTIFIER> |
| trigger_name | ::= | <IDENTIFIER> |
| view_name | ::= | <IDENTIFIER> |
| territory_name | ::= | <IDENTIFIER> |
| relation_name | ::= | table_or_view_or_snapshot_name |
| table_or_view_or_snapshot_name | ::= | <IDENTIFIER> |
| partition_name | ::= | <IDENTIFIER> |
| package_name | ::= | <IDENTIFIER> |
| language_name | ::= | <IDENTIFIER> |
| location_name | ::= | quoted_string |
| quoted_string | ::= | <STRING_LITERAL> |
| trigger_ref | ::= | <REFERENCING> ( <OLD> ( <AS> )? <IDENTIFIER> )? ( <NEW> ( <AS> )? <IDENTIFIER> )? |
| selected_table | ::= | schema_table_name ( ( "@" link_name )? ( alias )? ) |
| alias | ::= | <IDENTIFIER> |
| condition | ::= | ( <NOT> )? logical_term ( <OR> logical_term )* |
| logical_term | ::= | logical_factor ( <AND> logical_factor )* |
| logical_factor | ::= | ( expression ( comparison_op ( expression | ( ( <ALL> | <ANY> )? subquery ) ) | ( ( <NOT> )? <LIKE> quoted_string ) | ( <IN> exp_set ) ) ) |
| | | ( ( ( <EXISTS> subquery ) | ( <BETWEEN> expression <AND> expression ) ) ) | |
| | | ( <IS> ( <NOT> )? <NULL> ) | |
| | | ( "(" condition ")" ) | |
| expression | ::= | ( "+" | "-" )? term ( ( "+" | "-" ) term )* |
| term | ::= | factor ( ( "*" | "/" ) factor )* |
| factor | ::= | constant_nonsigned |
| | | variable | |
| | | function | |
| variable | ::= | ( table_name "." )? column_name ( "(+)" )? |
| function | ::= | ( ( number_function | char_function | conversion_function | other_function ) ( ( "(" expression ( "," expression )* ")" )? ) ) |
| | | ( group_function "(" ( "*" | <ALL> | <DISTINCT> )? expression ")" ) | |
| group_function | ::= | <AVG> |
| | | <COUNT> | |
| | | <MAX> | |
| | | <MIN> | |
| | | <STDDEV> | |
| | | <SUM> | |
| | | <VARIANCE> | |
| number_function | ::= | <ABS> |
| | | <CEIL> | |
| | | <FLOOR> | |
| | | <MOD> | |
| | | <POWER> | |
| | | <ROUND> | |
| | | <SIGN> | |
| | | <SQRT> | |
| | | <TRUNC> | |
| other_function | ::= | <DECODE> |
| | | <DUMP> | |
| | | <GREATEST> | |
| | | <LEAST> | |
| | | <NVL> | |
| | | <UID> | |
| | | <USER> | |
| | | <USERENV> | |
| | | <VSIZE> | |
| char_function | ::= | <CHR> |
| | | <INITCAP> | |
| | | <LOWER> | |
| | | <LPAD> | |
| | | <LTRIM> | |
| | | <REPLACE> | |
| | | <RPAD> | |
| | | <RTRIM> | |
| | | <SOUNDEX> | |
| | | <SUBSTR> | |
| | | <TRANSLATE> | |
| | | <UPPER> | |
| | | <ASCII> | |
| | | <INSTR> | |
| | | <LENGTH> | |
| conversion_function | ::= | <CHARTOROWID> |
| | | <CONVERT> | |
| | | <HEXTORAW> | |
| | | <RAWTOHEX> | |
| | | <ROWIDTOCHAR> | |
| | | <TO_CHAR> | |
| | | <TO_DATE> | |
| | | <TO_NUMBER> | |
| subquery | ::= | "(" select_command ")" |
| sorted_def | ::= | ( expression | n ) ( <ASC> | <DESC> )? |
| select_command | ::= | <SELECT> selected_columns from ( where )? ( connect_clause )? ( group_clause )? ( order_clause )? ( update_clause )? ( set_clause )? ( such_that_clause )? |
| such_that_clause | ::= | <SUCH2> <THAT> condition |
| new_clause | ::= | <SELECT> table_name |
| selected_columns | ::= | displayed_column ( "," displayed_column )* |
| displayed_column | ::= | ( ( ( table_name "." )? ( column_name | "*" ) ) | ( expression ( alias )? ) ) |
| from | ::= | <FROM> ( selected_table ( "," selected_table )* ) |
| where | ::= | <WHERE> condition |
| set_clause | ::= | ( ( <UNION> <ALL> ) | <INTERSECT> | <MINUS> ) select_command |
| order_clause | ::= | <ORDER> <BY> sorted_defs |
| sorted_defs | ::= | sorted_def ( "," sorted_def )* |
| update_clause | ::= | <FOR> <UPDATE> <OF> column_name ( "," column_name )* ( <NOWAIT> )? |
| group_clause | ::= | <GROUP> <BY> selected_columns ( <HAVING> condition )? |
| datatype | ::= | ( <RAW> "(" n ")" ) |
| | | <ROWID> | |
| | | ( <LONG> ( <RAW> )? ) | |
| | | ( <NUMBER> ( "(" n ( "," n )? ")" )? ) | |
| | | <INTEGER> | |
| | | <INT> | |
| | | <SMALLINT> | |
| | | ( <DECIMAL> "(" n "," n ")" ) | |
| | | ( <DEC> "(" n "," n ")" ) | |
| | | ( <NUMERIC> "(" n "," n ")" ) | |
| | | <FLOAT> | |
| | | <REAL> | |
| | | ( <DOUBLE> <PRECISION> ) | |
| | | <DATETIME> | |
| | | ( ( <CHAR> | <VARCHAR> | <VARCHAR2> | ( <CHARACTER> ( <VARYING> )? ) ) ( "(" n ")" ) ) | |
| modified_column_list | ::= | column_name ( datatype )? ( <DEFAULT_TOKEN> expression )? ( column_constraint )* ( "," column_name ( datatype )? ( <DEFAULT_TOKEN> expression )? ( column_constraint )* )* |
| column_constraint | ::= | ( <CONSTRAINT> constraint_name )? def_column_constraint |
| def_column_constraint | ::= | ( ( ( <NOT> )? <NULL> ) | ( <UNIQUE> | ( <PRIMARY> <KEY> ) ) | ( <REFERENCES> schema_table_name ( "(" column_name ")" )? ( <ON> <DELETE> <CASCADE> )? ) | ( <CHEK> "(" condition ")" ) | ( ( <USING> <INDEX> ( index_storage )+ ) ( <EXCEPTIONS> <INTO> schema_table_name )? ) | ( <DISABLE> ) ) |
| constraint_list | ::= | constant_name ( "," constant_name ) |
| index_storage | ::= | ( <PCTFREE> n ) |
| | | ( <INITRANS> n ) | |
| | | ( <MAXTRANS> n ) | |
| | | ( <TABLESPACE> tablespace_name ) | |
| | | ( <STORAGE> "(" ( storage_spec )+ ")" ) | |
| | | ( <NOSORT> ) | |
| enable_spec | ::= | ( ( ( <UNIQUE> "(" column_list ")" ) | ( <PRIMARY> <KEY> ) | ( <CONSTRAINT> constraint_name ) ) ( <USING> <INDEX> ( index_storage )+ )? ( <EXCEPTIONS> <INTO> schema_table_name )? ) |
| | | ( <ALL> <TRIGGERS> ) | |
| disable_spec | ::= | ( ( <UNIQUE> | ( <PRIMARY> <KEY> ) | ( <CONSTRAINT> constraint_name ) ) ( <CASCADE> )? ) |
| | | ( <ALL> <TRIGGERS> ) | |
| value | ::= | ( ( ( "+" | "-" )? ( <IDENTIFIER> | number ) ) | quoted_string | <NULL> ) |
| exp_set | ::= | ( ( number | quoted_string ) ( "," ( number | quoted_string ) )* ) |
| | | subquery | |
| connect_clause | ::= | <CONNECT> <BY> ( ( <PRIOR> expression comparison_op expression ) | ( expression comparison_op expression <PRIOR> ) ) ( <START> <WITH> condition )? |
| savepoint_name | ::= | <IDENTIFIER> |
| protocol | ::= | <IDENTIFIER> |
| constant_name | ::= | <IDENTIFIER> |
| system_status | ::= | ( ( <ONLINE> | <OFFLINE> ) ( <NORMAL> | <TEMPORARY> | <IMMEDIATE> )? ) |
| | | ( ( <BEGIN> | <END> ) <BACKUP> ) | |
| archive_log_spec | ::= | ( ( <THREAD> n )? <STOP> ) |
| | | ( ( ( <SEQ> n ) | ( <CHANGE> n ) | ( <CURRENT> ) | ( <GROUP> n ) | ( <LOGFILE> "\'" file_name "\'" ) | ( <NEXT> ) | ( <ALL> ) | ( <START> ) ) ( <TO> location_name )? ) | |
| lock_mode | ::= | ( <SHARE> ( <UPDATE> | ( <ROW> <EXCLUSIVE> ) )? ) |
| | | <EXCLUSIVE> | |
| | | ( <ROW> ( <SHARE> | <EXCLUSIVE> ) ) | |
| update_command | ::= | <UPDATE> schema_table_name ( "@" link_name )? ( alias )? <SET> ( ( column_name "=" ( expression | subquery ) ( "," column_name "=" ( expression | subquery ) )* ) | ( "(" column_name ( "," column_name )* ")" "=" subquery ) ) <WHERE> condition |
| truncate_command | ::= | <TRUNCATE> ( ( <TABLE> schema_table_name ) | ( <CLUSTER> ( schema_name "." )? cluster_name ) ) ( ( <DROP> | <REUSE> ) <STORAGE> )? |
| trigger_when | ::= | <FOR> <EACH> <ROW> ( <WHEN> "(" condition ")" )? |
| lock_command | ::= | <LOCK> <TABLE> schema_table_name ( "@" link_name )? ( "," schema_table_name ( "@" link_name )? )* <IN> lock_mode <MODE> ( <NOWAIT> )? |
| transaction_command | ::= | ( <COMMIT> ( <WORK> )? ( ( <COMMENT> quoted_string ) | ( <FORCE> quoted_string ( "," n )? ) )? ) |
| | | ( <SET> <TRANSACTION> ( ( <READ> ( <ONLY> | <WRITE> ) ) | ( <USE> <ROLLBACK> <SEGMENT> rollback_name ) ) ) | |
| | | ( <SAVEPOINT> savepoint_name ) | |
| | | ( <ROLLBACK> ( <WORK> )? ( ( <TO> ( <SAVEPOINT> savepoint_name )? ) | ( <FORCE> quoted_string ) )? ) | |
| set_delete_command | ::= | <DELETE> <FROM> schema_table_name ( "@" link_name )? ( <WHERE> condition )? |
| table_constraint | ::= | ( <CONSTRAINT> constraint_name )? def_table_constraint |
| def_table_constraint | ::= | ( ( <UNIQUE> | ( <PRIMARY> <KEY> ) ) "(" column_list ")" ) |
| | | ( <FOREIGN> <KEY> "(" column_list ")" <REFERENCES> schema_table_name ( "(" column_list ")" )? ( <ON> <DELETE> <CASCADE> )? ) | |
| | | ( <CHEK> "(" condition ")" ) | |
| | | ( <DISABLE> ) | |
| | | ( ( <USING> <INDEX> ( index_storage )+ )? ( <EXCEPTIONS> <INTO> schema_table_name )? ) | |
| stat_command | ::= | ( <ALTER> <ANY> ( <CLUSTER> | <INDEX> | <PROCEDURE> | <ROLE> | <SEQUENCE> | <SNAPSHOT> | <TABLE> ) ) |
| | | <CLUSTER> | |
| | | ( <DATABASE> <LINK> ) | |
| | | <EXISTS> | |
| | | <INDEX> | |
| | | ( <NOT> <EXISTS> ) | |
| | | <PROCEDURE> | |
| | | <PROFILE> | |
| | | "..." | |
| priv_granted | ::= | <IDENTIFIER> |
| distribution_list | ::= | ( user_or_role_name | <PUBLIC> ) ( "," ( user_or_role_name | <PUBLIC> ) )* |
| user_or_role_name | ::= | <IDENTIFIER> |
| privilege | ::= | prog_privilege |
| | | <DELETE> | |
| | | <INSERT> | |
| | | <SELECT> | |
| | | <UPDATE> | |
| | | <ALTER> | |
| | | <INDEX> | |
| | | <REFERENCES> | |
| prog_privilege | ::= | <EXECUTE> |
| rename_command | ::= | <RENAME> old_name <TO> new_name |
| noaudit_sql | ::= | ( ( stat_command ( "." stat_command )* ) | <ALL> ) ( <BY> ( user_list | ( <ACCESS> | <SESSION> ) ) )? ( <WHENEVER> ( <NOT> )? <SUCCESSFUL> )? |
| noaudit_object | ::= | ( ( obj_command ( "." obj_command )* ) | <ALL> ) <ON> ( ( ( schema_name "." )? object_name ) | <DEFAULT_TOKEN> ) ( <BY> ( user_list | ( <ACCESS> | <SESSION> ) ) )? ( <WHENEVER> ( <NOT> )? <SUCCESSFUL> )? |
| noaudit_command | ::= | <NOAUDIT> ( noaudit_sql | noaudit_object ) |
| indexed_column_list | ::= | ( column_name ( <ASC> | <DESC> )? )+ |
| grant_priv | ::= | ( priv_granted ( "," priv_granted )* ) <TO> distribution_list ( <WITH> <ADMIN> <OPTION> )? |
| grant_object | ::= | ( ( privilege ( "," privilege )* ) | <ALL> ( <PRIVILEGE> )? ) ( "(" column_list ")" )? <ON> ( schema_name "." )? object_name <TO> distribution_list ( <WITH> <GRANT> <OPTION> )? |
| grant_command | ::= | <GRANT> ( grant_priv | grant_object ) |
| function_name | ::= | <IDENTIFIER> |
| analyze_commmand | ::= | <ANALYZE> ( ( <INDEX> ( schema_name "." )? index_name ) | ( <TABLE> schema_table_name ) | ( <CLUSTER> ( schema_name "." )? cluster_name ) ) analyze_spec |
| analyze_spec | ::= | ( ( ( <COMPUTE> | ( <ESTIMATE> ( <SAMPLE> n ( <ROWS> | <PERCENT> ) )? ) | <DELETE> ) <STATISTICS> ) | ( <VALIDATE> <STRUCTURE> ( <CASCADE> )? ) | ( <LIST> <CHAINED> <ROWS> ( <INTO> schema_table_name )? ) ) |
| audit_command | ::= | <AUDIT> ( audit_sql | audit_object ) |
| audit_sql | ::= | ( ( stat_command ( "." stat_command )* ) | <ALL> ) ( <BY> ( user_list | ( <ACCESS> | <SESSION> ) ) )? ( <WHENEVER> ( <NOT> )? <SUCCESSFUL> )? |
| audit_object | ::= | ( ( obj_command ( "." obj_command )* ) | <ALL> ) <ON> ( ( ( schema_name "." )? object_name ) | <DEFAULT_TOKEN> ) ( <BY> ( user_list | ( <ACCESS> | <SESSION> ) ) )? ( <WHENEVER> ( <NOT> )? <SUCCESSFUL> )? |
| char_set_name | ::= | <IDENTIFIER> |
| comment_command | ::= | <COMMENT> <ON> ( ( <TABLE> ( schema_name "." )? relation_name ) | ( <COLUMN> ( schema_name "." )? relation_name "." column_name ) ) <IS> quoted_string |
| constant | ::= | number |
| | | quoted_string | |
| constant_nonsigned | ::= | constant |
| number | ::= | <FLOAT_LITERAL> |
| | | <INTEGER_LITERAL> | |
| date_function | ::= | <ADD_MONTHS> |
| | | <LAST_DAY> | |
| | | <MONTHS_BETWEEN> | |
| | | <NEW_TIME> | |
| | | <NEXT_DAY> | |
| | | <ROUND> | |
| | | <SYSDATE> | |
| | | <TRUNC> | |
| drop_command | ::= | <DROP> ( drop_cluster | drop_index | drop_profile | drop_role | drop_rollback | ( <SNAPSHOT> ( drop_snapshot | drop_snapshotlog ) ) | drop_sequence | ( ( <PUBLIC> )? ( drop_synonym | drop_databaselink ) ) | drop_table | drop_tablespace | drop_trigger | drop_user | drop_view ) |
| drop_cluster | ::= | <CLUSTER> ( schema_name "." )? cluster_name ( <INCLUDING> <TABLES> )? ( <CASCADE> <CONSTRAINTS> )? |
| drop_tablespace | ::= | <TABLESPACE> tablespace_name ( <INCLUDING> <CONTENTS> )? ( <CASCADE> <CONSTRAINTS> )? |
| drop_table | ::= | <TABLE> schema_table_name ( <CASCADE> <CONSTRAINTS> )? |
| drop_index | ::= | <INDEX> ( schema_name "." )? index_name |
| drop_trigger | ::= | <TRIGGER> ( schema_name "." )? trigger_name |
| drop_view | ::= | <VIEW> ( schema_name "." )? view_name |
| drop_user | ::= | <USER> user_name ( <CASCADE> )? |
| drop_sequence | ::= | <SEQUENCE> ( schema_name "." )? sequence_name |
| drop_synonym | ::= | <SYNONYM> ( schema_name "." )? synonym |
| drop_databaselink | ::= | <DATABASE> <LINK> link_name |
| drop_snapshot | ::= | ( schema_name "." )? snapshot_name |
| drop_snapshotlog | ::= | <LOG> <ON> schema_table_name |
| drop_profile | ::= | <PROFILE> profile_name ( <CASCADE> )? |
| drop_role | ::= | <ROLE> role_name |
| drop_rollback | ::= | <ROLLBACK> <SEGMENT> rollback_name |
| date_format | ::= | quoted_string |
| create_snapshot | ::= | ( schema_name "." )? snapshot_name ( storage_parameter )* ( <CLUSTER> cluster_name "(" column_list ")" )? ( <REFRESH> ( <FAST> | <COMPLETE> | <FORCE> )? ( <START> <WITH> date )? ( <NEXT> date )? )? ( <AS> select_command )? |
| create_command | ::= | <CREATE> ( create_cluster | create_controlfile | create_index | create_profile | create_role | ( ( <PUBLIC> )? ( create_rollback | create_databaselink | create_synonym ) ) | create_schema | create_sequence | <SNAPSHOT> ( create_snapshot | create_snapshotlog ) | create_table | create_tablespace | create_user | create_trigger | create_view ) |
| explain_command | ::= | <EXPLAIN> <PLAN> ( <SET> <STATEMENT_ID> "=" quoted_string )? ( <INTO> schema_table_name ( "@" link_name )? )? <FOR> ( select_command | insert_command | update_command | delete_command ) |
| controlfile_spec | ::= | ( <MAXLOGFILES> n ) |
| | | ( <MAXLOGMEMBERS> n ) | |
| | | ( <MAXLOGHISTORY> n ) | |
| | | ( <MAXDATAFILES> n ) | |
| | | ( <MAXINSTANCES> n ) | |
| | | ( <ARCHIVELOG> ) | |
| | | ( <NOARCHIVELOG> ) | |
| create_cluster | ::= | <CLUSTER> ( schema_name "." )? cluster_name "(" column_name datatype ( "," column_name datatype )* ")" ( create_cluster_spec )+ |
| create_cluster_spec | ::= | ( <PCTUSED> n ) |
| | | ( <PCTFREE> n ) | |
| | | ( <SIZE> n ( "k" | "m" )? ) | |
| | | ( <INITTRANS> n ) | |
| | | ( <MAXTRANS> n ) | |
| | | ( <STORAGE> "(" ( storage_spec )+ ")" ) | |
| | | ( <INDEX> ) | |
| | | ( ( <HASH> <IS> column_name )? <HASHKEYS> n ) | |
| create_controlfile | ::= | <CONTROLFILE> ( <REUSE> )? ( <SET> )? <DATABASE> database_name <LOGFILE> ( group_file_spec )* ( <RESETLOGS> <NORESETLOGS> ) <DATAFILE> file_spec_list ( controlfile_spec )* |
| create_databaselink | ::= | <DATABASE> <LINK> link_name ( <CONNECT> <TO> user_name <IDENTIFIED> <BY> password )? <USING> quoted_string |
| create_index | ::= | <INDEX> ( schema_name "." )? index_name <ON> ( ( table_name "(" indexed_column ")" ) | ( <CLUSTER> ( schema_name "." )? cluster_name ) ) ( index_storage )* |
| indexed_column | ::= | <INTEGER_LITERAL> |
| create_profile | ::= | <PROFILE> profile_name <LIMIT> ( profile_spec )+ |
| create_role | ::= | <ROLE> role_name ( ( <NOT> <IDENTIFIED> ) | ( <IDENTIFIED> ( ( <BY> password ) | <EXTERNALLY> ) ) ) |
| create_rollback | ::= | <ROLLBACK> <SEGMENT> rollback_name ( <TABLESPACE> tablespace_name )? ( <STORAGE> storage_spec )? |
| create_schema | ::= | <SCHEMA> <AUTHORIZATION> schema_name ( ( <CREATE> ( create_table | create_view ) ) | grant_command )* |
| create_table | ::= | <TABLE> schema_table_name "(" column_or_constraint_list ")" ( storage_parameter )* ( ( <CLUSTER> cluster_name "(" column_list ")" ) )? ( <ENABLE> enable_spec )? ( <DISABLE> disable_spec )? ( <AS> select_command )? |
| column_or_constraint_list | ::= | ( new_column_list | new_constraint_list ) |
| create_view | ::= | ( <OR> <REPLACE> )? ( <FORCE> | <NOFORCE> )? <VIEW> ( schema_name "." )? view_name ( "(" alias ( "," alias )* ")" )? <AS> select_command ( <WITH> <CHECK> <OPTION> ( <CONSTRAINT> constraint_name )? )? |
| create_sequence | ::= | <SEQUENCE> ( schema_name "." )? sequence_name ( create_sequence_spec )+ |
| create_synonym | ::= | <SYNONYM> ( schema_name "." )? synonym <FOR> schema_table_name ( "@" databaselink_name )? |
| databaselink_name | ::= | <IDENTIFIER> |
| create_tablespace | ::= | <TABLESPACE> tablespace_name ( <DATAFILE> file_spec_list )? ( <DEFAULT_TOKEN> <STORAGE> "(" ( storage_spec )+ ")" )? ( <ONLINE> | <OFFLINE> )? |
| create_trigger | ::= | ( <OR> <REPLACE> )? <TRIGGER> ( schema_name "." )? trigger_name trigger_sync trigger_ref trigger_when plsql_block |
| trigger_sync | ::= | ( <BEFORE> | <AFTER> ) ( <DELETE> | <INSERT> | <UPDATE> ( <OF> column_list )? ) ( <OR> ( <DELETE> | <INSERT> | <UPDATE> ( <OF> column_list )? ) )* <ON> schema_table_name |
| plsql_block | ::= | <IDENTIFIER> |
| constraint_name | ::= | <IDENTIFIER> |
| create_user | ::= | <USER> user_name <IDENTIFIED> ( ( <BY> password ) | <EXTERNALLY> ) ( create_user_spec )+ |
| create_user_spec | ::= | ( ( <DEFAULT_TOKEN> <TABLESPACE> tablespace_name ) | ( <TEMPORARY> <TABLESPACE> tablespace_name ) | ( <QUOTA> ( ( n ( "k" | "m" ) ) | <UNLIMITED> ) <ON> tablespace_name ) | ( <PROFILE> profile_name ) ) |
| create_database | ::= | <CREATE> <DATABASE> ( database_name )? ( create_database_spec )* |
| create_database_spec | ::= | ( <CONTROLFILE> <REUSE> ) |
| | | ( <LOGFILE> ( group_file_spec )* ) | |
| | | ( <MAXLOGFILES> n ) | |
| | | ( <MAXLOGMEMBERS> n ) | |
| | | ( <MAXLOGHISTORY> n ) | |
| | | ( <DATAFILE> file_spec_list ) | |
| | | ( <MAXDATAFILES> n ) | |
| | | ( <MAXINSTANCES> n ) | |
| | | ( <ARCHIVELOG> ) | |
| | | ( <NOARCHIVELOG> ) | |
| | | ( <CHARACTER> <SET> char_set_name ) | |
| | | ( <EXCLUSIVE> ) | |
| create_snapshotlog | ::= | <LOG> <ON> ( schema_name "." )? snapshot_name ( storage_parameter )* |
| alter_cluster | ::= | <CLUSTER> ( schema_name "." )? cluster_name ( alter_cluster_spec )+ |
| alter_index | ::= | <INDEX> ( schema_name "." )? index_name ( alter_index_spec )+ |
| alter_database | ::= | <DATABASE> database_name ( ( <MOUNT> ( <PARALLEL> | <EXCLUSIVE> )? ) | ( <CONVERT> ) | ( <OPEN> ( <RESETLOGS> | <NORESETLOGS> )? ) | ( <ARCHIVE> | <NOARCHIVE> ) | ( <RECOVER> recover_clause ) | ( <ADD> <LOGFILE> ( logfile_clause | ( <MEMBER> logmember_clause ( "," logmember_clause )* ) ) ) | ( <DROP> <LOGFILE> group_file_list ) | ( <BACKUP> <CONTROLFILE> <TO> file_reuse ) | ( <CREATE> <DATAFILE> file_list ( <AS> file_spec_list )? ) | ( <DATAFILE> "\'" file_name "\'" ( <ONLINE> | ( <OFFLINE> ( <DROP> )? ) )? ) | ( <ENABLE> ( <PUBLIC> )? <THREAD> n ) | ( <DISABLE> <THREAD> n ) | ( <RENAME> ( ( <FILE> file_list <TO> file_list ) | ( <GLOBAL_NAME> <TO> database_name ( "." domain_name )* ) ) ) ) |
| alter_resource | ::= | <RESOURCE> <COST> resource_cost_name n |
| alter_role | ::= | <ROLE> role_name ( ( <NOT> <IDENTIFIED> ) | ( <IDENTIFIED> ( ( <BY> password ) | <EXTERNALLY> ) ) ) |
| alter_rollback | ::= | <ROLLBACK> <SEGMENT> rollback_name ( <ONLINE> | <OFFLINE> | ( <STORAGE> "(" ( storage_spec )+ ")" ) ) |
| alter_sequence | ::= | <SEQUENCE> ( schema_name "." )? sequence_name ( alter_sequence_spec )+ |
| alter_session | ::= | <SESSION> ( ( <SET> ( set_session_spec )+ ) | ( <CLOSE> <DATABASE> <LINK> link_name ) | ( <ADVISE> ( <COMMIT> | <ROLLBACK> | <NOTHING> ) ) | ( ( <ENABLE> | <DISABLE> ) <COMMIT> <IN> <PROCEDURE> ) ) |
| alter_snapshot | ::= | ( schema_name "." )? snapshot_name ( storage_parameter )+ ( <REFRESH> ( <FAST> | <COMPLETE> | <FORCE> )? ( <START> <WITH> date )? ( <NEXT> date )? )? |
| alter_snapshot_log | ::= | <LOG> <ON> schema_table_name ( storage_parameter )* |
| alter_table | ::= | <TABLE> schema_table_name ( alter_table_spec )+ |
| alter_tablespace | ::= | <TABLESPACE> tablespace_name ( ( <ADD> <DATAFILE> file_spec_list ) | ( <RENAME> <DATAFILE> file_list <TO> file_list ) | ( <DEFAULT_TOKEN> <STORAGE> storage_spec ) | ( system_status ) ) |
| alter_trigger | ::= | <TRIGGER> ( schema_name "." )? trigger_name ( <ENABLE> | <DISABLE> ) |
| alter_user | ::= | <USER> user_name ( alter_user_spec )+ |
| alter_view | ::= | <VIEW> ( schema_name "." )? view_name <COMPILE> |
| alter_profile | ::= | <PROFILE> profile_name <LIMIT> ( profile_spec )+ |
| insert_command | ::= | <INSERT> <INTO> ( schema_table_name ( "@" link_name )? ) ( "(" column_list ")" )? ( value_list | select_command ) |
| set_role_command | ::= | <SET> <ROLE> ( pass_role_list | ( <ALL> ( <EXCEPT> role_list )? ) | <NONE> ) |
| pass_role_list | ::= | role_name ( <IDENTIFIED> <BY> password )? ( "," role_name ( <IDENTIFIED> <BY> password )? )* |
| revoke_command | ::= | <REVOKE> ( revoke_priv | revoke_object ) |
| revoke_priv | ::= | ( priv_granted ( "," priv_granted )* ) <FROM> distribution_list |
| revoke_object | ::= | ( ( privilege ( "," privilege )* ) | ( <ALL> ( privilege )? ) ) <ON> ( ( schema_name "." )? object_name ) <TO> distribution_list ( <CASCADE> <CONSTRAINTS> )? |
| delete_command | ::= | <DELETE> <FROM> schema_table_name ( "@" link_name )? ( <WHERE> condition )? |
| obj_command | ::= | <AUDIT> |
| | | <COMMENT> | |
| | | <DELETE> | |
| | | <GRANT> | |
| | | <INSERT> | |
| | | <LOCK> | |
| | | <SELECT> | |
| | | <UPDATE> | |
| | | <ALTER> | |
| | | <INDEX> | |
| | | <EXECUTE> | |
| | | <RENAME> | |
| comparison_op | ::= | ( "=" | "<>" | "<" | ">" | "<=" | ">=" | "!=" | "^=" ) |
| schema_table_name | ::= | ( schema_name "." )? table_name |
| temporal_command | ::= | ( temporal_select_command | temporal_create_table | temporal_insert_command | temporal_drop_table | temporal_delete_command ) |
| temporal_create_table | ::= | <CREATE> <TABLE> schema_table_name "(" column_or_constraint_list ")" <AS> <VALID> ( <STATE> | <EVENT> ) granularity |
| temporal_select_command | ::= | <SELECT> ( <GRANULARITY> granularity )? ( <SNAPSHOT> )? ( ( <NONINTERSECT> ) )? ( <STATE> )? ( <UNCOALESCED> )? ( <FIRST> ( "(" n ")" )? | <SECOND> ( "(" n ")" )? | <THIRD> ( "(" n ")" )? | <NTH> "(" n ( "," n )? ")" | <LAST> ( "(" n ")" )? )? ( <ALL> | <DISTINCT> )? selected_columns ( "," temporal_selected_columns )? ( "," temporal_valid_time_specification )? ( temporal_valid_clause )? ( <INTO> ( schema_table_name ) )? temporal_from ( where )? ( temporal_when )? ( group_clause )? ( order_clause )? |
| temporal_alter_table | ::= | <TABLE> schema_table_name ( temporal_alter_table_spec )+ |
| temporal_alter_table_spec | ::= | <VALID> <STATE> ( ( <ADD> granularity ) | ( <CHANGE> granularity ) | <REMOVE> ) |
| temporal_selected_table | ::= | schema_table_name ( temporal_projection | ( <AS> alias )? ) |
| temporal_update_command | ::= | <UPDATE> schema_table_name ( temporal_valid_clause )? ( alias )? <SET> ( ( column_name "=" ( expression | subquery ) ( "," column_name "=" ( expression | subquery ) )* ) | ( "(" column_name ( "," column_name )* ")" "=" subquery ) ) <WHERE> condition |
| temporal_from | ::= | <FROM> ( temporal_selected_table ( "," temporal_selected_table )* ) |
| granularity | ::= | <STRING_LITERAL> |
| temporal_operation | ::= | ( <CONTAINS> | <MEETS> | <EQUALS> | <OVERLAPS> | <OVERLAPPED_BY> | <DURING> | <STARTS> | <STARTED_BY> | <FINISHES> | <FINISHED_BY> | <BEFORE> | <AFTER> ) "(" temporal_operation_operand "," temporal_operation_operand ( "," granularity )? ")" |
| temporal_operation_operand | ::= | instant |
| | | period | |
| | | schema_table_name | |
| | | time_extraction | |
| temporal_duration_function | ::= | ( ( <DURATION> "(" ( ( period | schema_table_name ) | ( ( instant | time_extraction ) "," ( instant | time_extraction ) ) ) "," granularity ")" ) ) |
| integer_value | ::= | <INTEGER_LITERAL> |
| instant | ::= | <INSTANT> "(" date ( "," granularity )? ")" |
| period | ::= | <PERIOD> "(" date "," date ( "," granularity )? ")" |
| time_extraction | ::= | ( temporal_time_extraction_function "(" schema_table_name ")" ) |
| temporal_valid_clause | ::= | <VALID> ( ( period ( "+" period )* ) | ( instant ( "+" instant )* ) ) |
| temporal_when | ::= | <WHEN> temporal_condition |
| temporal_condition | ::= | ( <NOT> )? temporal_logical_term ( <OR> temporal_logical_term )* |
| temporal_logical_term | ::= | temporal_logical_factor ( <AND> temporal_logical_factor )* |
| temporal_logical_factor | ::= | ( temporal_duration_operation | temporal_operation | ( "(" temporal_condition ")" ) ) |
| temporal_duration_operation | ::= | temporal_duration_function comparison_op integer_value |
| temporal_valid_time_specification | ::= | ( <VALID> ( ( period ( "+" period )* ) | ( instant ( "+" instant )* ) | ( schema_table_name ( "+" schema_table_name )* ) ) ) |
| temporal_projection | ::= | ( "(" temporal_projected_column_name ( "," temporal_projected_column_name )* ")" <AS> ( <COALESCED> )? temporal_projected_table_name ) |
| temporal_projected_table_name | ::= | <IDENTIFIER> |
| temporal_projected_column_name | ::= | <IDENTIFIER> |
| temporal_insert_command | ::= | <INSERT> <INTO> ( schema_table_name ) temporal_valid_clause value_list |
| temporal_drop_table | ::= | <DROP> <TABLE> ( schema_table_name ) |
| temporal_rename_command | ::= | <RENAME> ( old_name ) <TO> ( new_name ) |
| temporal_delete_command | ::= | <DELETE> <FROM> schema_table_name ( where )? ( temporal_when )? |
| temporal_column_function | ::= | ( <FIRST> | <SECOND> | <THIRD> | <NTH> | <LAST> | <CLOSEST> ) |
| temporal_time_extraction_function | ::= | ( <START> | <FINISH> | <VALID> ) |
| temporal_selected_columns | ::= | temporal_column ( "," temporal_column )* |
| temporal_column | ::= | ( temporal_column_function "(" temporal_time_extraction_function "(" table_name ")" ( "," ( n | ( temporal_column_function "(" temporal_time_extraction_function "(" table_name ")" ")" ( "+" temporal_duration_specification )? ) ) )? ( "," granularity )? ")" <AS> column_name ) |