Skip to content
walter-weinmann edited this page Mar 13, 2019 · 32 revisions

plsql_block_sql_list:

`                                `
<div>

[plsql\_block\_sql\_list](#plsql_block_sql_list "plsql_block_sql_list")

         ::= plsql_block


<div>

           | [sql\_list](#sql_list "sql_list")


no references


## plsql\_block: ##

![](diagram/plsql_block.png)

````sql

`                                `
<div>

[plsql\_block](#plsql_block "plsql_block")

         ::= plsql_body


referenced by:

sql_list:

`                                `
<div>

[sql\_list](#sql_list "sql_list") ::= ( [sql](#sql "sql") ';'
[extra](#extra "extra")? )+

referenced by:

-   [plsql\_block\_sql\_list](#plsql_block_sql_list "plsql_block_sql_list")


## extra: ##

![](diagram/extra.png)

````sql

`                                `
<div>

[extra](#extra "extra")    ::= [NAME](#NAME "NAME") ';'


referenced by:

-   [sql\_list](#sql_list "sql_list")


## DBLINK: ##

![](diagram/DBLINK.png)

````sql

`                                `
<div>

[DBLINK](#DBLINK "DBLINK")   ::= '"@' \[A-Za-z0-9\_\\\$\#.@\]+ '"'


referenced by:

-   [table\_dblink](#table_dblink "table_dblink")


## NAME: ##

![](diagram/NAME.png)

````sql

`                                `
<div>

[NAME](#NAME "NAME")     ::= \[A-Za-z\] \[A-Za-z0-9\_\\\$\#@\~\]\*


referenced by:

-   [alter\_user\_def](#alter_user_def "alter_user_def")
-   [case\_when\_opt\_as\_exp](#case_when_opt_as_exp "case_when_opt_as_exp")
-   [cluster\_name](#cluster_name "cluster_name")
-   [column](#column "column")
-   [column\_def\_opt](#column_def_opt "column_def_opt")
-   [column\_ref](#column_ref "column_ref")
-   [create\_index\_spec\_column](#create_index_spec_column "create_index_spec_column")
-   [create\_role\_def](#create_role_def "create_role_def")
-   [create\_user\_def](#create_user_def "create_user_def")
-   [cursor](#cursor "cursor")
-   [data\_type](#data_type "data_type")
-   [drop\_context\_def](#drop_context_def "drop_context_def")
-   [drop\_directory\_def](#drop_directory_def "drop_directory_def")
-   [drop\_profile\_def](#drop_profile_def "drop_profile_def")
-   [drop\_role\_def](#drop_role_def "drop_role_def")
-   [drop\_table\_def](#drop_table_def "drop_table_def")
-   [drop\_tablespace\_def](#drop_tablespace_def "drop_tablespace_def")
-   [drop\_user\_def](#drop_user_def "drop_user_def")
-   [extra](#extra "extra")
-   [fun\_arg](#fun_arg "fun_arg")
-   [fun\_arg\_named](#fun_arg_named "fun_arg_named")
-   [function\_name](#function_name "function_name")
-   [function\_ref](#function_ref "function_ref")
-   [grantee\_identified\_by](#grantee_identified_by "grantee_identified_by")
-   [grantee\_revokee](#grantee_revokee "grantee_revokee")
-   [identified](#identified "identified")
-   [index\_name](#index_name "index_name")
-   [join\_ref](#join_ref "join_ref")
-   [materialized\_view\_name](#materialized_view_name "materialized_view_name")
-   [on\_obj\_clause](#on_obj_clause "on_obj_clause")
-   [package\_name](#package_name "package_name")
-   [procedure\_name](#procedure_name "procedure_name")
-   [quota](#quota "quota")
-   [role\_list](#role_list "role_list")
-   [scalar\_opt\_as\_exp\_1](#scalar_opt_as_exp_1 "scalar_opt_as_exp_1")
-   [schema](#schema "schema")
-   [select\_field](#select_field "select_field")
-   [sequence\_name](#sequence_name "sequence_name")
-   [synonym\_name](#synonym_name "synonym_name")
-   [system\_privilege](#system_privilege "system_privilege")
-   [table](#table "table")
-   [table\_alias](#table_alias "table_alias")
-   [table\_constraint\_def](#table_constraint_def "table_constraint_def")
-   [table\_dblink](#table_dblink "table_dblink")
-   [table\_ref](#table_ref "table_ref")
-   [target](#target "target")
-   [tbl\_type](#tbl_type "tbl_type")
-   [trigger\_name](#trigger_name "trigger_name")
-   [type\_name](#type_name "type_name")
-   [user\_list](#user_list "user_list")
-   [user\_opt](#user_opt "user_opt")
-   [when\_action](#when_action "when_action")


## sql: ##

![](diagram/sql.png)

````sql

`                                `
<div>

[sql](#sql "sql")      ::=
[manipulative\_statement](#manipulative_statement "manipulative_statement")

           | schema


referenced by:

plsql_body:

`                                `
<div>

[plsql\_body](#plsql_body "plsql_body")

         ::= 'BEGIN' statement_pragma_list 'END' ';'


referenced by:

statement_pragma_list:

`                                `
<div>

[statement\_pragma\_list](#statement_pragma_list "statement_pragma_list")

         ::= statement_pragma+


referenced by:

statement_pragma:

`                                `
<div>

[statement\_pragma](#statement_pragma "statement_pragma")

         ::= assign_statement


<div>

           | [close\_statement](#close_statement "close_statement")

           | commit_statement


<div>

           | [cursor\_def](#cursor_def "cursor_def")

           | delete_statement_positioned


<div>

           |
[delete\_statement\_searched](#delete_statement_searched "delete_statement_searched")

           | fetch_statement


<div>

           | [function\_ref](#function_ref "function_ref")

           | insert_statement


<div>

           | [open\_statement](#open_statement "open_statement")

           | procedure_call


<div>

           |
[rollback\_statement](#rollback_statement "rollback_statement")

           | select_statement


<div>

           |
[update\_statement\_positioned](#update_statement_positioned "update_statement_positioned")

           | update_statement_searched


<div>

           | 'WHENEVER' ( 'NOT' 'FOUND' | 'SQLERROR' )
[when\_action](#when_action "when_action")


referenced by:

-   [statement\_pragma\_list](#statement_pragma_list "statement_pragma_list")


## assignment\_statement: ##

![](diagram/assignment_statement.png)

````sql

`                                `
<div>

[assignment\_statement](#assignment_statement "assignment_statement")

         ::= parameter ':=' scalar_opt_as_exp_1


no references

procedure_call:

`                                `
<div>

[procedure\_call](#procedure_call "procedure_call")

         ::= 'CALL' function_ref


referenced by:

schema:

`                                `
<div>

[schema](#schema "schema")   ::= 'CREATE' 'SCHEMA' 'AUTHORIZATION'
[NAME](#NAME "NAME")
[schema\_element\_list](#schema_element_list "schema_element_list")?

referenced by:

-   [sql](#sql "sql")


## schema\_element\_list: ##

![](diagram/schema_element_list.png)

````sql

`                                `
<div>

[schema\_element\_list](#schema_element_list "schema_element_list")

         ::= schema_element+


referenced by:

schema_element:

`                                `
<div>

[schema\_element](#schema_element "schema_element")

         ::= create_table_def


<div>

           | [view\_def](#view_def "view_def")

           | grant_def


referenced by:

create_role_def:

`                                `
<div>

[create\_role\_def](#create_role_def "create_role_def")

         ::= 'CREATE' 'ROLE' NAME


referenced by:

create_table_def:

`                                `
<div>

[create\_table\_def](#create_table_def "create_table_def")

         ::= 'CREATE' create_opts? 'TABLE' table '(' ( base_table_element ( ',' base_table_element )* )? ')'


referenced by:

create_user_def:

`                                `
<div>

[create\_user\_def](#create_user_def "create_user_def")

         ::= 'CREATE' 'USER' NAME identified user_opts_list?


referenced by:

create_index_def:

`                                `
<div>

[create\_index\_def](#create_index_def "create_index_def")

         ::= 'CREATE' create_index_opts? 'INDEX' index_name? 'ON' table_alias create_index_spec? create_index_norm? create_index_filter?


referenced by:

create_index_opts:

`                                `
<div>

[create\_index\_opts](#create_index_opts "create_index_opts")

         ::= 'BITMAP'


<div>

           | 'HASHMAP'

           | 'KEYLIST'


<div>

           | 'UNIQUE'


referenced by:

-   [create\_index\_def](#create_index_def "create_index_def")


## index\_name: ##

![](diagram/index_name.png)

````sql

`                                `
<div>

[index\_name](#index_name "index_name")

         ::= NAME ( '.' NAME )?


referenced by:

create_index_spec:

`                                `
<div>

[create\_index\_spec](#create_index_spec "create_index_spec")

         ::= '(' create_index_spec_items ')'


referenced by:

create_index_spec_items:

`                                `
<div>

[create\_index\_spec\_items](#create_index_spec_items "create_index_spec_items")

         ::= create_index_spec_column ( ',' create_index_spec_items )*


referenced by:

create_index_spec_column:

`                                `
<div>

[create\_index\_spec\_column](#create_index_spec_column "create_index_spec_column")

         ::= NAME JSON?


referenced by:

JSON:

`                                `
<div>

[JSON](#JSON "JSON")     ::= '|' \[:{\\\[\#\] \[\^|\]+ '|'

referenced by:

-   [column\_ref](#column_ref "column_ref")
-   [create\_index\_spec\_column](#create_index_spec_column "create_index_spec_column")
-   [function\_ref](#function_ref "function_ref")
-   [query\_term](#query_term "query_term")
-   [scalar\_sub\_exp](#scalar_sub_exp "scalar_sub_exp")


## create\_index\_norm: ##

![](diagram/create_index_norm.png)

````sql

`                                `
<div>

[create\_index\_norm](#create_index_norm "create_index_norm")

         ::= NORM_WITH STRING


referenced by:

STRING:

`                                `
<div>

[STRING](#STRING "STRING")   ::= 'fun' \[A-Za-z0-9,\_\]\* '.'\* '-&gt;'
'.'\* 'end.'

           | 'fun\s' ['A-Za-z0-9_]+ ':' ['A-Za-z0-9_]+ '/'


<div>

           | "'" \[\^\\'\]\* "''\*\*"


referenced by:

-   [create\_index\_filter](#create_index_filter "create_index_filter")
-   [create\_index\_norm](#create_index_norm "create_index_norm")
-   [data\_type](#data_type "data_type")
-   [grantee\_identified\_by](#grantee_identified_by "grantee_identified_by")
-   [literal](#literal "literal")


## create\_index\_filter: ##

![](diagram/create_index_filter.png)

````sql

`                                `
<div>

[create\_index\_filter](#create_index_filter "create_index_filter")

         ::= FILTER_WITH STRING


referenced by:

create_opts:

`                                `
<div>

[create\_opts](#create_opts "create_opts")

         ::= tbl_scope tbl_type?


<div>

           | [tbl\_type](#tbl_type "tbl_type")


referenced by:

-   [create\_table\_def](#create_table_def "create_table_def")


## tbl\_scope: ##

![](diagram/tbl_scope.png)

````sql

`                                `
<div>

[tbl\_scope](#tbl_scope "tbl_scope")

         ::= 'LOCAL'


<div>

           | 'CLUSTER'

           | 'SCHEMA'


referenced by:

tbl_type:

`                                `
<div>

[tbl\_type](#tbl_type "tbl_type") ::= 'SET'

           | 'ORDERED_SET'


<div>

           | 'BAG'

           | NAME


referenced by:

alter_user_def:

`                                `
<div>

[alter\_user\_def](#alter_user_def "alter_user_def")

         ::= 'ALTER' 'USER' ( user_list proxy_clause | NAME ( spec_list | NAME NAME ) )


referenced by:

user_list:

`                                `
<div>

[user\_list](#user_list "user_list")

         ::= NAME ( ',' NAME )*


referenced by:

proxy_clause:

`                                `
<div>

[proxy\_clause](#proxy_clause "proxy_clause")

         ::= ( 'GRANT' | 'REVOKE' ) 'CONNECT' 'THROUGH' ( 'ENTERPRISE' 'USERS' | db_user_proxy )


referenced by:

db_user_proxy:

`                                `
<div>

[db\_user\_proxy](#db_user_proxy "db_user_proxy")

         ::= proxy_with proxy_auth_req?


<div>

           | [proxy\_auth\_req](#proxy_auth_req "proxy_auth_req")


referenced by:

-   [proxy\_clause](#proxy_clause "proxy_clause")


## proxy\_with: ##

![](diagram/proxy_with.png)

````sql

`                                `
<div>

[proxy\_with](#proxy_with "proxy_with")

         ::= 'WITH' ( 'NO' 'ROLES' | 'ROLE' ( 'ALL' 'EXCEPT' )? role_list )


referenced by:

proxy_auth_req:

`                                `
<div>

[proxy\_auth\_req](#proxy_auth_req "proxy_auth_req")

         ::= 'AUTHENTICATION' 'REQUIRED'


referenced by:

spec_list:

`                                `
<div>

[spec\_list](#spec_list "spec_list")

         ::= spec_item+


referenced by:

spec_item:

`                                `
<div>

[spec\_item](#spec_item "spec_item")

         ::= identified


<div>

           | [user\_opt](#user_opt "user_opt")

           | user_role


referenced by:

user_role:

`                                `
<div>

[user\_role](#user_role "user_role")

         ::= 'DEFAULT' 'ROLE' ( 'ALL' ( 'EXCEPT' role_list )? | NONE | role_list )


referenced by:

role_list:

`                                `
<div>

[role\_list](#role_list "role_list")

         ::= NAME ( ',' NAME )*


referenced by:

identified:

`                                `
<div>

[identified](#identified "identified")

         ::= IDENTIFIED ( ( 'BY' | EXTERNALLY 'AS' ) NAME | 'GLOBALLY' ( 'AS' NAME )? )


referenced by:

user_opts_list:

`                                `
<div>

[user\_opts\_list](#user_opts_list "user_opts_list")

         ::= user_opt+


referenced by:

user_opt:

`                                `
<div>

[user\_opt](#user_opt "user_opt") ::= ( ( 'DEFAULT' | 'TEMPORARY' )
'TABLESPACE' | 'PROFILE' ) [NAME](#NAME "NAME")

           | quota_list


referenced by:

quota_list:

`                                `
<div>

[quota\_list](#quota_list "quota_list")

         ::= quota+


referenced by:

quota:

`                                `
<div>

[quota](#quota "quota")    ::= 'QUOTA' ( 'UNLIMITED' |
[INTNUM](#INTNUM "INTNUM") [NAME](#NAME "NAME")? ) 'ON'
[NAME](#NAME "NAME")

referenced by:

-   [quota\_list](#quota_list "quota_list")


## INTNUM: ##

![](diagram/INTNUM.png)

````sql

`                                `
<div>

[INTNUM](#INTNUM "INTNUM")   ::= \[0-9\]+


referenced by:

-   [literal](#literal "literal")
-   [quota](#quota "quota")
-   [sgn\_num](#sgn_num "sgn_num")


## table\_list: ##

![](diagram/table_list.png)

````sql

`                                `
<div>

[table\_list](#table_list "table_list")

         ::= table ( ',' table )*


referenced by:

exists:

`                                `
<div>

[exists](#exists "exists")   ::= 'IF' 'EXISTS'

referenced by:

-   [drop\_table\_def](#drop_table_def "drop_table_def")


## base\_table\_element\_commalist: ##

![](diagram/base_table_element_commalist.png)

````sql

`                                `
<div>

[base\_table\_element\_commalist](#base_table_element_commalist "base_table_element_commalist")

         ::= base_table_element ( ',' base_table_element )*


no references

base_table_element:

`                                `
<div>

[base\_table\_element](#base_table_element "base_table_element")

         ::= column_def


<div>

           |
[table\_constraint\_def](#table_constraint_def "table_constraint_def")


referenced by:

-   [base\_table\_element\_commalist](#base_table_element_commalist "base_table_element_commalist")
-   [create\_table\_def](#create_table_def "create_table_def")


## column\_def: ##

![](diagram/column_def.png)

````sql

`                                `
<div>

[column\_def](#column_def "column_def")

         ::= column data_type column_def_opt*


referenced by:

column_def_list:

`                                `
<div>

[column\_def\_list](#column_def_list "column_def_list")

         ::= column_def_opt+


no references

column_def_opt:

`                                `
<div>

[column\_def\_opt](#column_def_opt "column_def_opt")

         ::= 'NOT' 'NULL' ( 'UNIQUE' | 'PRIMARY' 'KEY' )?


<div>

           | 'DEFAULT' ( [function\_ref](#function_ref "function_ref") |
[literal](#literal "literal") | [NAME](#NAME "NAME") | 'NULL' | 'USER' )

           | 'CHECK' '(' search_condition ')'


<div>

           | 'REFERENCES' [table](#table "table") ( '('
[column\_commalist](#column_commalist "column_commalist") ')' )?


referenced by:

-   [column\_def](#column_def "column_def")
-   [column\_def\_list](#column_def_list "column_def_list")


## table\_constraint\_def: ##

![](diagram/table_constraint_def.png)

````sql

`                                `
<div>

[table\_constraint\_def](#table_constraint_def "table_constraint_def")

         ::= ( ( ( 'CONSTRAINT' NAME )? 'UNIQUE' | 'PRIMARY' 'KEY' ) '(' column_commalist | 'CHECK' '(' search_condition ) ')'


<div>

           | 'FOREIGN' 'KEY' '('
[column\_commalist](#column_commalist "column_commalist") ')'
'REFERENCES' [table](#table "table") ( '('
[column\_commalist](#column_commalist "column_commalist") ')' )?


referenced by:

-   [base\_table\_element](#base_table_element "base_table_element")


## column\_commalist: ##

![](diagram/column_commalist.png)

````sql

`                                `
<div>

[column\_commalist](#column_commalist "column_commalist")

         ::= column ( ',' column )*


referenced by:

view_def:

`                                `
<div>

[view\_def](#view_def "view_def") ::= 'CREATE' 'VIEW'
[table](#table "table") ( '('
[column\_commalist](#column_commalist "column_commalist") ')' )? 'AS'
[query\_spec](#query_spec "query_spec") ( 'WITH' 'CHECK' 'OPTION' )?

referenced by:

-   [manipulative\_statement](#manipulative_statement "manipulative_statement")
-   [schema\_element](#schema_element "schema_element")


## grant\_def: ##

![](diagram/grant_def.png)

````sql

`                                `
<div>

[grant\_def](#grant_def "grant_def")

         ::= 'GRANT' ( ( 'All' 'PRIVILEGES' | object_privilege ( ',' object_privilege )* ) on_obj_clause 'TO' ( grantee_identified_by | grantee_revokee ( ',' grantee_revokee )* ) ( 'WITH' ( 'GRANT' | 'HIERARCHY' ) 'OPTION' )? | ( 'All' 'PRIVILEGES' | system_privilege ( ',' system_privilege )* ) 'TO' ( grantee_identified_by | grantee_revokee ( ',' grantee_revokee )* ) ( 'WITH' ( 'ADMIN' | 'DELEGATE' ) 'OPTION' )? )


referenced by:

revoke_def:

`                                `
<div>

[revoke\_def](#revoke_def "revoke_def")

         ::= 'REVOKE' ( ( 'All' 'PRIVILEGES' | object_privilege ( ',' object_privilege )* ) on_obj_clause 'FROM' grantee_revokee ( ',' grantee_revokee )* ( 'CASCADE' 'CONSTRAINTS' | 'FORCE' )? | ( 'All' 'PRIVILEGES' | system_privilege ( ',' system_privilege )* ) 'FROM' grantee_revokee ( ',' grantee_revokee )* )


referenced by:

grantee_identified_by:

`                                `
<div>

[grantee\_identified\_by](#grantee_identified_by "grantee_identified_by")

         ::= NAME 'IDENTIFIED' 'BY' STRING


referenced by:

grantee_revokee:

`                                `
<div>

[grantee\_revokee](#grantee_revokee "grantee_revokee")

         ::= NAME


<div>

           | 'PUBLIC'


referenced by:

-   [grant\_def](#grant_def "grant_def")
-   [grantee\_revokee\_commalist](#grantee_revokee_commalist "grantee_revokee_commalist")
-   [revoke\_def](#revoke_def "revoke_def")


## grantee\_revokee\_commalist: ##

![](diagram/grantee_revokee_commalist.png)

````sql

`                                `
<div>

[grantee\_revokee\_commalist](#grantee_revokee_commalist "grantee_revokee_commalist")

         ::= grantee_revokee ( ',' grantee_revokee )*


no references

object_privilege:

`                                `
<div>

[object\_privilege](#object_privilege "object_privilege")

         ::= 'ALL'


<div>

           | 'ALTER'

           | 'DELETE'


<div>

           | 'EXECUTE'

           | 'INDEX'


<div>

           | 'INSERT'

           | 'REFERENCES'


<div>

           | 'SELECT'

           | 'UPDATE'


referenced by:

object_privilege_list:

`                                `
<div>

[object\_privilege\_list](#object_privilege_list "object_privilege_list")

         ::= object_privilege ( ',' object_privilege )*


no references

object_with_grant_option:

`                                `
<div>

[object\_with\_grant\_option](#object_with_grant_option "object_with_grant_option")

         ::= 'WITH' ( 'GRANT' | 'HIERARCHY' ) 'OPTION'


no references

object_with_revoke_option:

`                                `
<div>

[object\_with\_revoke\_option](#object_with_revoke_option "object_with_revoke_option")

         ::= 'CASCADE' 'CONSTRAINTS'


<div>

           | 'FORCE'


no references


## on\_obj\_clause: ##

![](diagram/on_obj_clause.png)

````sql

`                                `
<div>

[on\_obj\_clause](#on_obj_clause "on_obj_clause")

         ::= 'ON' ( table | 'DIRECTORY' NAME )


referenced by:

system_privilege:

`                                `
<div>

[system\_privilege](#system_privilege "system_privilege")

         ::= 'ADMIN'


<div>

           | 'ALL'

           | ( 'ALTER' | 'CREATE' | 'DROP' ) 'ANY' ( 'INDEX' | 'MATERIALIZED'? 'VIEW' | 'TABLE' )


<div>

           | 'CREATE' ( 'MATERIALIZED'? 'VIEW' | 'TABLE' )

           | ( 'DELETE' | 'INSERT' | 'SELECT' | 'UPDATE' ) 'ANY' 'TABLE'


<div>

           | [NAME](#NAME "NAME")


referenced by:

-   [grant\_def](#grant_def "grant_def")
-   [revoke\_def](#revoke_def "revoke_def")
-   [system\_privilege\_list](#system_privilege_list "system_privilege_list")


## system\_privilege\_list: ##

![](diagram/system_privilege_list.png)

````sql

`                                `
<div>

[system\_privilege\_list](#system_privilege_list "system_privilege_list")

         ::= system_privilege ( ',' system_privilege )*


no references

system_with_grant_option:

`                                `
<div>

[system\_with\_grant\_option](#system_with_grant_option "system_with_grant_option")

         ::= 'WITH' ( 'ADMIN' | 'DELEGATE' ) 'OPTION'


no references

cursor_def:

`                                `
<div>

[cursor\_def](#cursor_def "cursor_def")

         ::= 'CURSOR' cursor 'IS' query_exp


referenced by:

order_by_clause:

`                                `
<div>

[order\_by\_clause](#order_by_clause "order_by_clause")

         ::= 'ORDER' 'BY' ordering_spec_commalist


referenced by:

ordering_spec_commalist:

`                                `
<div>

[ordering\_spec\_commalist](#ordering_spec_commalist "ordering_spec_commalist")

         ::= ordering_spec ',' ordering_spec


referenced by:

ordering_spec:

`                                `
<div>

[ordering\_spec](#ordering_spec "ordering_spec")

         ::= scalar_exp asc_desc?


referenced by:

asc_desc:

`                                `
<div>

[asc\_desc](#asc_desc "asc_desc") ::= 'ASC'

           | 'DESC'


referenced by:

manipulative_statement:

`                                `
<div>

[manipulative\_statement](#manipulative_statement "manipulative_statement")

         ::= alter_user_def


<div>

           | [create\_index\_def](#create_index_def "create_index_def")

           | create_role_def


<div>

           | [create\_table\_def](#create_table_def "create_table_def")

           | create_user_def


<div>

           |
[delete\_statement\_positioned](#delete_statement_positioned "delete_statement_positioned")

           | delete_statement_searched


<div>

           | [drop\_cluster\_def](#drop_cluster_def "drop_cluster_def")

           | drop_context_def


<div>

           |
[drop\_database\_def](#drop_database_def "drop_database_def")

           | drop_database_link_def


<div>

           |
[drop\_directory\_def](#drop_directory_def "drop_directory_def")

           | drop_function_def


<div>

           | [drop\_index\_def](#drop_index_def "drop_index_def")

           | drop_materialized_view_def


<div>

           | [drop\_package\_def](#drop_package_def "drop_package_def")

           | drop_procedure_def


<div>

           | [drop\_profile\_def](#drop_profile_def "drop_profile_def")

           | drop_role_def


<div>

           |
[drop\_sequence\_def](#drop_sequence_def "drop_sequence_def")

           | drop_synonym_def


<div>

           | [drop\_table\_def](#drop_table_def "drop_table_def")

           | drop_tablespace_def


<div>

           | [drop\_trigger\_def](#drop_trigger_def "drop_trigger_def")

           | drop_type_def


<div>

           |
[drop\_type\_body\_def](#drop_type_body_def "drop_type_body_def")

           | drop_user_def


<div>

           | [drop\_view\_def](#drop_view_def "drop_view_def")

           | grant_def


<div>

           | [insert\_statement](#insert_statement "insert_statement")

           | revoke_def


<div>

           | [select\_statement](#select_statement "select_statement")

           | truncate_cluster


<div>

           | [truncate\_table](#truncate_table "truncate_table")

           | update_statement_positioned


<div>

           |
[update\_statement\_searched](#update_statement_searched "update_statement_searched")

           | view_def


referenced by:

close_statement:

`                                `
<div>

[close\_statement](#close_statement "close_statement")

         ::= 'CLOSE' cursor


referenced by:

commit_statement:

`                                `
<div>

[commit\_statement](#commit_statement "commit_statement")

         ::= 'COMMIT' 'WORK'?


referenced by:

delete_statement_positioned:

`                                `
<div>

[delete\_statement\_positioned](#delete_statement_positioned "delete_statement_positioned")

         ::= 'DELETE' 'FROM' table_dblink 'WHERE' 'CURRENT' 'OF' cursor returning?


referenced by:

delete_statement_searched:

`                                `
<div>

[delete\_statement\_searched](#delete_statement_searched "delete_statement_searched")

         ::= 'DELETE' 'FROM' table_dblink where_clause? returning?


referenced by:

drop_cluster_def:

`                                `
<div>

[drop\_cluster\_def](#drop_cluster_def "drop_cluster_def")

         ::= 'DROP' 'CLUSTER' cluster_name drop_cluster_extensions?


referenced by:

drop_cluster_extensions:

`                                `
<div>

[drop\_cluster\_extensions](#drop_cluster_extensions "drop_cluster_extensions")

         ::= 'INCLUDING' 'TABLES' ( 'CASCADE' 'CONSTRAINTS' )?


referenced by:

cluster_name:

`                                `
<div>

[cluster\_name](#cluster_name "cluster_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_context_def:

`                                `
<div>

[drop\_context\_def](#drop_context_def "drop_context_def")

         ::= 'DROP' 'CONTEXT' NAME


referenced by:

drop_database_def:

`                                `
<div>

[drop\_database\_def](#drop_database_def "drop_database_def")

         ::= 'DROP' 'DATABASE'


referenced by:

drop_database_link_def:

`                                `
<div>

[drop\_database\_link\_def](#drop_database_link_def "drop_database_link_def")

         ::= 'DROP' 'PUBLIC'? 'DATABASE' 'LINK' 'DBLINK'


referenced by:

drop_directory_def:

`                                `
<div>

[drop\_directory\_def](#drop_directory_def "drop_directory_def")

         ::= 'DROP' 'DIRECTORY' NAME


referenced by:

drop_function_def:

`                                `
<div>

[drop\_function\_def](#drop_function_def "drop_function_def")

         ::= 'DROP' 'FUNCTION' function_name


referenced by:

function_name:

`                                `
<div>

[function\_name](#function_name "function_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_index_def:

`                                `
<div>

[drop\_index\_def](#drop_index_def "drop_index_def")

         ::= 'DROP' 'INDEX' ( index_name ( 'FROM' table )? | 'FROM' table ) drop_index_extensions?


referenced by:

drop_index_extensions:

`                                `
<div>

[drop\_index\_extensions](#drop_index_extensions "drop_index_extensions")

         ::= ( 'DEFERRED' | 'IMMEDIATE' ) 'INVALIDATION'


<div>

           | 'FORCE' ( ( 'DEFERRED' | 'IMMEDIATE' ) 'INVALIDATION' )?

           | 'ONLINE' ( 'FORCE'? ( 'DEFERRED' | 'IMMEDIATE' ) 'INVALIDATION' )?


referenced by:

drop_materialized_view_def:

`                                `
<div>

[drop\_materialized\_view\_def](#drop_materialized_view_def "drop_materialized_view_def")

         ::= 'DROP' 'MATERIALIZED' 'VIEW' materialized_view_name ( 'PRESERVE' 'TABLE' )?


referenced by:

materialized_view_name:

`                                `
<div>

[materialized\_view\_name](#materialized_view_name "materialized_view_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_package_def:

`                                `
<div>

[drop\_package\_def](#drop_package_def "drop_package_def")

         ::= 'DROP' 'PACKAGE' 'BODY'? package_name


referenced by:

package_name:

`                                `
<div>

[package\_name](#package_name "package_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_procedure_def:

`                                `
<div>

[drop\_procedure\_def](#drop_procedure_def "drop_procedure_def")

         ::= 'DROP' 'PROCEDURE' procedure_name


referenced by:

procedure_name:

`                                `
<div>

[procedure\_name](#procedure_name "procedure_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_profile_def:

`                                `
<div>

[drop\_profile\_def](#drop_profile_def "drop_profile_def")

         ::= 'DROP' 'PROFILE' NAME 'CASCADE'?


referenced by:

drop_role_def:

`                                `
<div>

[drop\_role\_def](#drop_role_def "drop_role_def")

         ::= 'DROP' 'ROLE' NAME


referenced by:

drop_sequence_def:

`                                `
<div>

[drop\_sequence\_def](#drop_sequence_def "drop_sequence_def")

         ::= 'DROP' 'SEQUENCE' sequence_name


referenced by:

sequence_name:

`                                `
<div>

[sequence\_name](#sequence_name "sequence_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_synonym_def:

`                                `
<div>

[drop\_synonym\_def](#drop_synonym_def "drop_synonym_def")

         ::= 'DROP' 'PUBLIC'? 'SYNONYM' synonym_name 'FORCE'?


referenced by:

synonym_name:

`                                `
<div>

[synonym\_name](#synonym_name "synonym_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_table_def:

`                                `
<div>

[drop\_table\_def](#drop_table_def "drop_table_def")

         ::= 'DROP' NAME? 'TABLE' exists? table_list drop_table_extensions?


referenced by:

drop_table_extensions:

`                                `
<div>

[drop\_table\_extensions](#drop_table_extensions "drop_table_extensions")

         ::= 'CASCADE' 'CONSTRAINTS' 'PURGE'?


<div>

           | 'PURGE'


referenced by:

-   [drop\_table\_def](#drop_table_def "drop_table_def")


## drop\_tablespace\_def: ##

![](diagram/drop_tablespace_def.png)

````sql

`                                `
<div>

[drop\_tablespace\_def](#drop_tablespace_def "drop_tablespace_def")

         ::= 'DROP' 'TABLESPACE' NAME drop_tablespace_extensions?


referenced by:

drop_tablespace_extensions:

`                                `
<div>

[drop\_tablespace\_extensions](#drop_tablespace_extensions "drop_tablespace_extensions")

         ::= ( ( 'DROP' | 'KEEP' ) 'QUOTA' )? 'INCLUDING' 'CONTENTS' ( ( 'AND' | 'KEEP' ) 'DATAFILES' )? ( 'CASCADE' 'CONSTRAINTS' )?


referenced by:

drop_trigger_def:

`                                `
<div>

[drop\_trigger\_def](#drop_trigger_def "drop_trigger_def")

         ::= 'DROP' 'TRIGGER' trigger_name


referenced by:

trigger_name:

`                                `
<div>

[trigger\_name](#trigger_name "trigger_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_type_def:

`                                `
<div>

[drop\_type\_def](#drop_type_def "drop_type_def")

         ::= 'DROP' 'TYPE' type_name ( 'FORCE' | 'VALIDATE' )?


referenced by:

type_name:

`                                `
<div>

[type\_name](#type_name "type_name")

         ::= NAME ( '.' NAME )?


referenced by:

drop_type_body_def:

`                                `
<div>

[drop\_type\_body\_def](#drop_type_body_def "drop_type_body_def")

         ::= 'DROP' 'TYPE' 'BODY' type_name


referenced by:

drop_user_def:

`                                `
<div>

[drop\_user\_def](#drop_user_def "drop_user_def")

         ::= 'DROP' 'USER' NAME 'CASCADE'?


referenced by:

drop_view_def:

`                                `
<div>

[drop\_view\_def](#drop_view_def "drop_view_def")

         ::= 'DROP' 'VIEW' table ( 'CASCADE' 'CONSTRAINTS' )?


referenced by:

fetch_statement:

`                                `
<div>

[fetch\_statement](#fetch_statement "fetch_statement")

         ::= 'FETCH' cursor 'INTO' target_commalist


referenced by:

insert_statement:

`                                `
<div>

[insert\_statement](#insert_statement "insert_statement")

         ::= 'INSERT' 'INTO' table_dblink ( ( '(' column_commalist ')' )? values_or_query_spec )? returning?


referenced by:

values_or_query_spec:

`                                `
<div>

[values\_or\_query\_spec](#values_or_query_spec "values_or_query_spec")

         ::= ( 'VALUES' '(' insert_atom_commalist | '(' query_spec ) ')'


<div>

           | [query\_spec](#query_spec "query_spec")


referenced by:

-   [insert\_statement](#insert_statement "insert_statement")


## insert\_atom\_commalist: ##

![](diagram/insert_atom_commalist.png)

````sql

`                                `
<div>

[insert\_atom\_commalist](#insert_atom_commalist "insert_atom_commalist")

         ::= insert_atom ( ',' insert_atom )*


referenced by:

insert_atom:

`                                `
<div>

[insert\_atom](#insert_atom "insert_atom")

         ::= scalar_opt_as_exp


referenced by:

open_statement:

`                                `
<div>

[open\_statement](#open_statement "open_statement")

         ::= 'OPEN' cursor


referenced by:

rollback_statement:

`                                `
<div>

[rollback\_statement](#rollback_statement "rollback_statement")

         ::= 'ROLLBACK' 'WORK'?


referenced by:

select_statement:

`                                `
<div>

[select\_statement](#select_statement "select_statement")

         ::= query_exp


referenced by:

hint:

`                                `
<div>

[hint](#hint "hint")     ::= [HINT](#HINT "HINT")

referenced by:

-   [query\_spec](#query_spec "query_spec")


## HINT: ##

![](diagram/HINT.png)

````sql

`                                `
<div>

[HINT](#HINT "HINT")     ::= '/\*' \[\^\\\*/\]\* '\*/'


referenced by:

-   [hint](#hint "hint")


## all\_distinct: ##

![](diagram/all_distinct.png)

````sql

`                                `
<div>

[all\_distinct](#all_distinct "all_distinct")

         ::= 'ALL'


<div>

           | 'DISTINCT'


no references


## truncate\_cluster: ##

![](diagram/truncate_cluster.png)

````sql

`                                `
<div>

[truncate\_cluster](#truncate_cluster "truncate_cluster")

         ::= 'TRUNCATE' 'CLUSTER' cluster_name storage?


referenced by:

truncate_table:

`                                `
<div>

[truncate\_table](#truncate_table "truncate_table")

         ::= 'TRUNCATE' 'TABLE' table materialized? storage? 'CASCADE'?


referenced by:

materialized:

`                                `
<div>

[materialized](#materialized "materialized")

         ::= ( 'PRESERVE' | 'PURGE' ) 'MATERIALIZED' 'VIEW' 'LOG'


referenced by:

storage:

`                                `
<div>

[storage](#storage "storage")  ::= ( 'DROP' 'ALL'? | 'REUSE' ) 'STORAGE'

referenced by:

-   [truncate\_cluster](#truncate_cluster "truncate_cluster")
-   [truncate\_table](#truncate_table "truncate_table")


## update\_statement\_positioned: ##

![](diagram/update_statement_positioned.png)

````sql

`                                `
<div>

[update\_statement\_positioned](#update_statement_positioned "update_statement_positioned")

         ::= 'UPDATE' table_dblink 'SET' assignment_commalist 'WHERE' 'CURRENT' 'OF' cursor returning?


referenced by:

assignment_commalist:

`                                `
<div>

[assignment\_commalist](#assignment_commalist "assignment_commalist")

         ::= assignment ( ',' assignment )*


referenced by:

assignment:

`                                `
<div>

[assignment](#assignment "assignment")

         ::= column '=' scalar_opt_as_exp


referenced by:

update_statement_searched:

`                                `
<div>

[update\_statement\_searched](#update_statement_searched "update_statement_searched")

         ::= 'UPDATE' table_dblink 'SET' assignment_commalist where_clause? returning?


referenced by:

target_commalist:

`                                `
<div>

[target\_commalist](#target_commalist "target_commalist")

         ::= target ( ',' target )*


referenced by:

target:

`                                `
<div>

[target](#target "target")   ::= [NAME](#NAME "NAME")

           | parameter_ref


referenced by:

query_exp:

`                                `
<div>

[query\_exp](#query_exp "query_exp")

         ::= query_term ( ( 'UNION' 'ALL'? | 'INTERSECT' | 'MINUS' ) query_term )*


referenced by:

returning:

`                                `
<div>

[returning](#returning "returning")

         ::= ( 'RETURNING' | 'RETURN' ) selection 'INTO' selection


referenced by:

query_term:

`                                `
<div>

[query\_term](#query_term "query_term")

         ::= query_spec


<div>

           | '(' [query\_exp](#query_exp "query_exp") ')'
[JSON](#JSON "JSON")?


referenced by:

-   [join\_ref](#join_ref "join_ref")
-   [query\_exp](#query_exp "query_exp")
-   [table\_ref](#table_ref "table_ref")


## query\_spec: ##

![](diagram/query_spec.png)

````sql

`                                `
<div>

[query\_spec](#query_spec "query_spec")

         ::= 'SELECT' hint? ( 'ALL' | 'DISTINCT' )? selection into? table_exp


referenced by:

into:

`                                `
<div>

[into](#into "into")     ::= 'INTO'
[target\_commalist](#target_commalist "target_commalist")

referenced by:

-   [query\_spec](#query_spec "query_spec")


## selection: ##

![](diagram/selection.png)

````sql

`                                `
<div>

[selection](#selection "selection")

         ::= select_field_commalist


referenced by:

select_field:

`                                `
<div>

[select\_field](#select_field "select_field")

         ::= case_when_exp ( 'AS'? NAME )?


<div>

           |
[scalar\_opt\_as\_exp](#scalar_opt_as_exp "scalar_opt_as_exp")

           | '*'


referenced by:

select_field_commalist:

`                                `
<div>

[select\_field\_commalist](#select_field_commalist "select_field_commalist")

         ::= select_field ( ',' select_field )*


referenced by:

case_when_opt_as_exp:

`                                `
<div>

[case\_when\_opt\_as\_exp](#case_when_opt_as_exp "case_when_opt_as_exp")

         ::= case_when_exp ( 'AS'? NAME )?


no references

case_when_exp:

`                                `
<div>

[case\_when\_exp](#case_when_exp "case_when_exp")

         ::= '(' case_when_exp ')'


<div>

           | 'CASE'
[scalar\_opt\_as\_exp](#scalar_opt_as_exp "scalar_opt_as_exp")?
[case\_when\_then\_list](#case_when_then_list "case_when_then_list")
[else](#else "else")? 'END'


referenced by:

-   [case\_when\_exp](#case_when_exp "case_when_exp")
-   [case\_when\_opt\_as\_exp](#case_when_opt_as_exp "case_when_opt_as_exp")
-   [fun\_arg](#fun_arg "fun_arg")
-   [select\_field](#select_field "select_field")


## case\_when\_then\_list: ##

![](diagram/case_when_then_list.png)

````sql

`                                `
<div>

[case\_when\_then\_list](#case_when_then_list "case_when_then_list")

         ::= case_when_then+


referenced by:

case_when_then:

`                                `
<div>

[case\_when\_then](#case_when_then "case_when_then")

         ::= 'WHEN' search_condition 'THEN' scalar_opt_as_exp


referenced by:

else:

`                                `
<div>

[else](#else "else")     ::= 'ELSE'
[scalar\_opt\_as\_exp](#scalar_opt_as_exp "scalar_opt_as_exp")

referenced by:

-   [case\_when\_exp](#case_when_exp "case_when_exp")


## table\_exp: ##

![](diagram/table_exp.png)

````sql

`                                `
<div>

[table\_exp](#table_exp "table_exp")

         ::= from_clause where_clause? hierarchical_query_clause? group_by_clause? having_clause? order_by_clause?


referenced by:

from_clause:

`                                `
<div>

[from\_clause](#from_clause "from_clause")

         ::= 'FROM' from_column_commalist


referenced by:

from_column:

`                                `
<div>

[from\_column](#from_column "from_column")

         ::= table_ref


<div>

           | '(' [join\_clause](#join_clause "join_clause") ')'

           | join_clause


referenced by:

from_column_commalist:

`                                `
<div>

[from\_column\_commalist](#from_column_commalist "from_column_commalist")

         ::= from_column ( ',' from_column )*


referenced by:

join_clause:

`                                `
<div>

[join\_clause](#join_clause "join_clause")

         ::= table_ref join_list


referenced by:

join:

`                                `
<div>

[join](#join "join")     ::=
[inner\_cross\_join](#inner_cross_join "inner_cross_join")

           | outer_join


referenced by:

join_list:

`                                `
<div>

[join\_list](#join_list "join_list")

         ::= join+


referenced by:

inner_cross_join:

`                                `
<div>

[inner\_cross\_join](#inner_cross_join "inner_cross_join")

         ::= 'INNER'? 'JOIN' join_ref join_on_or_using_clause


<div>

           | ( 'CROSS' | 'NATURAL' 'INNER'? ) 'JOIN'
[join\_ref](#join_ref "join_ref")


referenced by:

-   [join](#join "join")


## join\_on\_or\_using\_clause: ##

![](diagram/join_on_or_using_clause.png)

````sql

`                                `
<div>

[join\_on\_or\_using\_clause](#join_on_or_using_clause "join_on_or_using_clause")

         ::= 'ON' search_condition


<div>

           | 'USING' '('
[select\_field\_commalist](#select_field_commalist "select_field_commalist")
')'


referenced by:

-   [inner\_cross\_join](#inner_cross_join "inner_cross_join")
-   [outer\_join](#outer_join "outer_join")


## outer\_join: ##

![](diagram/outer_join.png)

````sql

`                                `
<div>

[outer\_join](#outer_join "outer_join")

         ::= query_partition_clause? 'NATURAL'? outer_join_type 'JOIN' join_ref query_partition_clause? join_on_or_using_clause?


referenced by:

query_partition_clause:

`                                `
<div>

[query\_partition\_clause](#query_partition_clause "query_partition_clause")

         ::= 'PARTITION' 'BY' ( '(' scalar_exp_commalist ')' | scalar_exp_commalist )


referenced by:

outer_join_type:

`                                `
<div>

[outer\_join\_type](#outer_join_type "outer_join_type")

         ::= ( 'FULL' | 'LEFT' | 'RIGHT' ) 'OUTER'?


referenced by:

table_ref:

`                                `
<div>

[table\_ref](#table_ref "table_ref")

         ::= table_dblink


<div>

           | [query\_term](#query_term "query_term")
[NAME](#NAME "NAME")?


referenced by:

-   [from\_column](#from_column "from_column")
-   [join\_clause](#join_clause "join_clause")


## join\_ref: ##

![](diagram/join_ref.png)

````sql

`                                `
<div>

[join\_ref](#join_ref "join_ref") ::=
[table\_dblink](#table_dblink "table_dblink")

           | query_term NAME?


referenced by:

hierarchical_query_clause:

`                                `
<div>

[hierarchical\_query\_clause](#hierarchical_query_clause "hierarchical_query_clause")

         ::= ( 'START' 'WITH' search_condition 'CONNECT' 'BY' 'NOCYCLE'? | 'CONNECT' 'BY' 'NOCYCLE'? search_condition 'START' 'WITH' ) search_condition


referenced by:

where_clause:

`                                `
<div>

[where\_clause](#where_clause "where_clause")

         ::= 'WHERE' search_condition


referenced by:

group_by_clause:

`                                `
<div>

[group\_by\_clause](#group_by_clause "group_by_clause")

         ::= 'GROUP' 'BY' column_ref_commalist


referenced by:

column_ref_commalist:

`                                `
<div>

[column\_ref\_commalist](#column_ref_commalist "column_ref_commalist")

         ::= ( column_ref | function_ref ) ( ',' ( column_ref | function_ref ) )*


referenced by:

having_clause:

`                                `
<div>

[having\_clause](#having_clause "having_clause")

         ::= 'HAVING' search_condition


referenced by:

search_condition:

`                                `
<div>

[search\_condition](#search_condition "search_condition")

         ::= ( search_condition ( 'AND' | 'OR' ) | 'NOT' ) search_condition


<div>

           | '('
[search\_condition](#search_condition "search_condition") ')'

           | predicate


referenced by:

predicate:

`                                `
<div>

[predicate](#predicate "predicate")

         ::= comparison_predicate


<div>

           |
[between\_predicate](#between_predicate "between_predicate")

           | like_predicate


<div>

           | [test\_for\_null](#test_for_null "test_for_null")

           | in_predicate


<div>

           |
[all\_or\_any\_predicate](#all_or_any_predicate "all_or_any_predicate")

           | existence_test


referenced by:

comparison_predicate:

`                                `
<div>

[comparison\_predicate](#comparison_predicate "comparison_predicate")

         ::= scalar_opt_as_exp


<div>

           | ( [scalar\_exp](#scalar_exp "scalar_exp") ( '=' |
[COMPARISON](#COMPARISON "COMPARISON") ) 'PRIOR' | 'PRIOR'
[scalar\_exp](#scalar_exp "scalar_exp") ( '=' |
[COMPARISON](#COMPARISON "COMPARISON") ) )
[scalar\_exp](#scalar_exp "scalar_exp")


referenced by:

-   [predicate](#predicate "predicate")


## COMPARISON: ##

![](diagram/COMPARISON.png)

````sql

`                                `
<div>

[COMPARISON](#COMPARISON "COMPARISON")

         ::= '!='


<div>

           | '\^='

           | '<>'


<div>

           | '&lt;'

           | '>'


<div>

           | '&lt;='

           | '>='


referenced by:

between_predicate:

`                                `
<div>

[between\_predicate](#between_predicate "between_predicate")

         ::= scalar_exp ( 'BETWEEN' | not_between ) scalar_exp 'AND' scalar_exp


referenced by:

not_between:

`                                `
<div>

[not\_between](#not_between "not_between")

         ::= 'NOT' 'BETWEEN'


referenced by:

like_predicate:

`                                `
<div>

[like\_predicate](#like_predicate "like_predicate")

         ::= scalar_exp ( 'LIKE' | not_like ) scalar_exp escape?


referenced by:

not_like:

`                                `
<div>

[not\_like](#not_like "not_like") ::= 'NOT' 'LIKE'

referenced by:

-   [like\_predicate](#like_predicate "like_predicate")


## escape: ##

![](diagram/escape.png)

````sql

`                                `
<div>

[escape](#escape "escape")   ::= 'ESCAPE' [atom](#atom "atom")


referenced by:

-   [like\_predicate](#like_predicate "like_predicate")


## test\_for\_null: ##

![](diagram/test_for_null.png)

````sql

`                                `
<div>

[test\_for\_null](#test_for_null "test_for_null")

         ::= scalar_exp ( is_null | is_not_null )


referenced by:

is_not_null:

`                                `
<div>

[is\_not\_null](#is_not_null "is_not_null")

         ::= 'IS' 'NOT' 'NULL'


referenced by:

is_null:

`                                `
<div>

[is\_null](#is_null "is_null")  ::= 'IS' 'NULL'

referenced by:

-   [test\_for\_null](#test_for_null "test_for_null")


## in\_predicate: ##

![](diagram/in_predicate.png)

````sql

`                                `
<div>

[in\_predicate](#in_predicate "in_predicate")

         ::= scalar_exp ( 'IN' | not_in ) ( '(' ( subquery | scalar_exp_commalist ) ')' | scalar_exp )


referenced by:

not_in:

`                                `
<div>

[not\_in](#not_in "not_in")   ::= 'NOT' 'IN'

referenced by:

-   [in\_predicate](#in_predicate "in_predicate")


## all\_or\_any\_predicate: ##

![](diagram/all_or_any_predicate.png)

````sql

`                                `
<div>

[all\_or\_any\_predicate](#all_or_any_predicate "all_or_any_predicate")

         ::= scalar_exp ( '=' | COMPARISON ) any_all_some subquery


referenced by:

any_all_some:

`                                `
<div>

[any\_all\_some](#any_all_some "any_all_some")

         ::= 'ANY'


<div>

           | 'ALL'

           | 'SOME'


referenced by:

existence_test:

`                                `
<div>

[existence\_test](#existence_test "existence_test")

         ::= 'EXISTS' subquery


referenced by:

table_coll_expr:

`                                `
<div>

[table\_coll\_expr](#table_coll_expr "table_coll_expr")

         ::= TABLE '(' ( column_ref | function_ref | subquery ) ')'


referenced by:

subquery:

`                                `
<div>

[subquery](#subquery "subquery") ::=
[query\_exp](#query_exp "query_exp")

referenced by:

-   [all\_or\_any\_predicate](#all_or_any_predicate "all_or_any_predicate")
-   [existence\_test](#existence_test "existence_test")
-   [fun\_arg](#fun_arg "fun_arg")
-   [in\_predicate](#in_predicate "in_predicate")
-   [scalar\_sub\_exp](#scalar_sub_exp "scalar_sub_exp")
-   [table\_coll\_expr](#table_coll_expr "table_coll_expr")


## scalar\_opt\_as\_exp\_1: ##

![](diagram/scalar_opt_as_exp_1.png)

````sql

`                                `
<div>

[scalar\_opt\_as\_exp\_1](#scalar_opt_as_exp_1 "scalar_opt_as_exp_1")

         ::= scalar_exp ( ( '=' | COMPARISON ) scalar_exp | AS? NAME )?


referenced by:

scalar_opt_as_exp:

`                                `
<div>

[scalar\_opt\_as\_exp](#scalar_opt_as_exp "scalar_opt_as_exp")

         ::= scalar_opt_as_exp_1


<div>

           |
[scalar\_opt\_as\_exp\_2](#scalar_opt_as_exp_2 "scalar_opt_as_exp_2")


referenced by:

-   [assignment](#assignment "assignment")
-   [case\_when\_exp](#case_when_exp "case_when_exp")
-   [case\_when\_then](#case_when_then "case_when_then")
-   [comparison\_predicate](#comparison_predicate "comparison_predicate")
-   [else](#else "else")
-   [insert\_atom](#insert_atom "insert_atom")
-   [scalar\_exp\_commalist](#scalar_exp_commalist "scalar_exp_commalist")
-   [select\_field](#select_field "select_field")


## scalar\_exp: ##

![](diagram/scalar_exp.png)

````sql

`                                `
<div>

[scalar\_exp](#scalar_exp "scalar_exp")

         ::= scalar_sub_exp ( '||' scalar_sub_exp )*


referenced by:

scalar_sub_exp:

`                                `
<div>

[scalar\_sub\_exp](#scalar_sub_exp "scalar_sub_exp")

         ::= ( scalar_sub_exp ( '+' | '-' | '*' | '/' | 'div' ) | unary_add_or_subtract ) scalar_sub_exp


<div>

           | 'NULL'

           | atom


<div>

           | [subquery](#subquery "subquery")

           | column_ref


<div>

           | [function\_ref](#function_ref "function_ref")

           | '(' scalar_sub_exp ')' JSON?


referenced by:

unary_add_or_subtract:

`                                `
<div>

[unary\_add\_or\_subtract](#unary_add_or_subtract "unary_add_or_subtract")

         ::= '+'


<div>

           | '-'


referenced by:

-   [scalar\_sub\_exp](#scalar_sub_exp "scalar_sub_exp")


## scalar\_exp\_commalist: ##

![](diagram/scalar_exp_commalist.png)

````sql

`                                `
<div>

[scalar\_exp\_commalist](#scalar_exp_commalist "scalar_exp_commalist")

         ::= scalar_opt_as_exp ( ',' scalar_opt_as_exp )*


referenced by:

atom:

`                                `
<div>

[atom](#atom "atom")     ::=
[parameter\_ref](#parameter_ref "parameter_ref")

           | literal


<div>

           | 'USER'


referenced by:

-   [escape](#escape "escape")
-   [fun\_arg](#fun_arg "fun_arg")
-   [scalar\_sub\_exp](#scalar_sub_exp "scalar_sub_exp")


## parameter\_ref: ##

![](diagram/parameter_ref.png)

````sql

`                                `
<div>

[parameter\_ref](#parameter_ref "parameter_ref")

         ::= parameter ( 'INDICATOR'? parameter )?


referenced by:

function_ref:

`                                `
<div>

[function\_ref](#function_ref "function_ref")

         ::= ( NAME ( '.' NAME ( '.' NAME )? )? '(' ( fun_args | fun_args_named )? ')' | 'FUNS' ( '(' ( fun_args | fun_args_named | '*' | 'DISTINCT' column_ref | 'ALL' scalar_exp )? ')' )? ) JSON*


referenced by:

fun_args:

`                                `
<div>

[fun\_args](#fun_args "fun_args") ::= [fun\_arg](#fun_arg "fun_arg") (
',' [fun\_arg](#fun_arg "fun_arg") )\*

referenced by:

-   [function\_ref](#function_ref "function_ref")


## fun\_arg: ##

![](diagram/fun_arg.png)

````sql

`                                `
<div>

[fun\_arg](#fun_arg "fun_arg")  ::= '(' [fun\_arg](#fun_arg "fun_arg")
')'

           | atom


<div>

           | [case\_when\_exp](#case_when_exp "case_when_exp")

           | column_ref


<div>

           | [fun\_arg](#fun_arg "fun_arg") ( 'AS'? [NAME](#NAME "NAME")
| ( '\*' | '+' | '-' | '/' | '=' | 'div' | '||' |
[COMPARISON](#COMPARISON "COMPARISON") ) [fun\_arg](#fun_arg "fun_arg")
)

           | function_ref


<div>

           | 'NULL'

           | subquery


<div>

           | ( '+' | '-' ) [fun\_arg](#fun_arg "fun_arg")


referenced by:

-   [fun\_arg](#fun_arg "fun_arg")
-   [fun\_args](#fun_args "fun_args")


## fun\_args\_named: ##

![](diagram/fun_args_named.png)

````sql

`                                `
<div>

[fun\_args\_named](#fun_args_named "fun_args_named")

         ::= fun_arg_named ( ',' fun_arg_named )*


referenced by:

fun_arg_named:

`                                `
<div>

[fun\_arg\_named](#fun_arg_named "fun_arg_named")

         ::= NAME '=>' ( literal | NAME | parameter )


referenced by:

literal:

`                                `
<div>

[literal](#literal "literal")  ::= [STRING](#STRING "STRING")

           | INTNUM


<div>

           | [APPROXNUM](#APPROXNUM "APPROXNUM")


referenced by:

-   [atom](#atom "atom")
-   [column\_def\_opt](#column_def_opt "column_def_opt")
-   [fun\_arg\_named](#fun_arg_named "fun_arg_named")


## APPROXNUM: ##

![](diagram/APPROXNUM.png)

````sql

`                                `
<div>

[APPROXNUM](#APPROXNUM "APPROXNUM")

         ::= ( '.' [0-9] | [0-9]+ '.'? ) [0-9]* ( [eE]


referenced by:

table:

`                                `
<div>

[table](#table "table")    ::= [NAME](#NAME "NAME") ( '.'
[NAME](#NAME "NAME") )?

           | parameter


referenced by:

table_alias:

`                                `
<div>

[table\_alias](#table_alias "table_alias")

         ::= ( NAME ( '.' NAME )? | parameter ) NAME


<div>

           | [table](#table "table")


referenced by:

-   [create\_index\_def](#create_index_def "create_index_def")
-   [table\_dblink](#table_dblink "table_dblink")


## table\_dblink: ##

![](diagram/table_dblink.png)

````sql

`                                `
<div>

[table\_dblink](#table_dblink "table_dblink")

         ::= ( NAME ( '.' NAME )? | parameter ) DBLINK NAME?


<div>

           | [table\_alias](#table_alias "table_alias")

           | table_coll_expr


referenced by:

column_ref:

`                                `
<div>

[column\_ref](#column_ref "column_ref")

         ::= ( NAME '.' ( NAME '.' )? )? ( 'FUNCTION' | NAME | 'TYPE' ) ( JSON | '(' '+' ')' )?


<div>

           | [NAME](#NAME "NAME") '.' ( [NAME](#NAME "NAME") '.' )? '\*'


referenced by:

-   [column\_ref\_commalist](#column_ref_commalist "column_ref_commalist")
-   [fun\_arg](#fun_arg "fun_arg")
-   [function\_ref](#function_ref "function_ref")
-   [scalar\_sub\_exp](#scalar_sub_exp "scalar_sub_exp")
-   [table\_coll\_expr](#table_coll_expr "table_coll_expr")


## data\_type: ##

![](diagram/data_type.png)

````sql

`                                `
<div>

[data\_type](#data_type "data_type")

         ::= STRING


<div>

           | [NAME](#NAME "NAME") ( '(' [sgn\_num](#sgn_num "sgn_num") (
',' [sgn\_num](#sgn_num "sgn_num") )? ')' )?


referenced by:

-   [column\_def](#column_def "column_def")


## sgn\_num: ##

![](diagram/sgn_num.png)

````sql

`                                `
<div>

[sgn\_num](#sgn_num "sgn_num")  ::= '-'? [INTNUM](#INTNUM "INTNUM")


referenced by:

-   [data\_type](#data_type "data_type")


## column: ##

![](diagram/column.png)

````sql

`                                `
<div>

[column](#column "column")   ::= [NAME](#NAME "NAME")


referenced by:

-   [assignment](#assignment "assignment")
-   [column\_commalist](#column_commalist "column_commalist")
-   [column\_def](#column_def "column_def")


## cursor: ##

![](diagram/cursor.png)

````sql

`                                `
<div>

[cursor](#cursor "cursor")   ::= [NAME](#NAME "NAME")


referenced by:

-   [close\_statement](#close_statement "close_statement")
-   [cursor\_def](#cursor_def "cursor_def")
-   [delete\_statement\_positioned](#delete_statement_positioned "delete_statement_positioned")
-   [fetch\_statement](#fetch_statement "fetch_statement")
-   [open\_statement](#open_statement "open_statement")
-   [update\_statement\_positioned](#update_statement_positioned "update_statement_positioned")


## parameter: ##

![](diagram/parameter.png)

````sql

`                                `
<div>

[parameter](#parameter "parameter")

         ::= PARAMETER


referenced by:

PARAMETER:

`                                `
<div>

[PARAMETER](#PARAMETER "PARAMETER")

         ::= ':' [A-Za-z0-9_\.]+


referenced by:

when_action:

`                                `
<div>

[when\_action](#when_action "when_action")

         ::= 'GOTO' NAME


<div>

           | 'CONTINUE'


referenced by:

-   [statement\_pragma](#statement_pragma "statement_pragma")


------------------------------------------------------------------------

  --- ------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------
      ... generated by [Railroad Diagram Generator](https://www.bottlecaps.de/rr/ui "https://www.bottlecaps.de/rr/ui"){.signature}   [![](diagram/rr-1.58.1777.png)](https://www.bottlecaps.de/rr/ui "https://www.bottlecaps.de/rr/ui")
  --- ------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------------------------------------


Clone this wiki locally