BNF for Chronusii.jj

NON-TERMINALS

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 )