compound-statement = --+-----------------------+-> BEGIN --+--------------------+---+ +-> <beginning-label>: -+ +-> pragma-clauses --+ | +------------------------------ <------------------------------+ +-+----------------------------+--+ ++--> variable-declaration -++ | +--------------------------+ | +---------------------------------+ +-+-------------------------------+--> END --+--------------------+--> ++-> compound-use-statement -++ +-> <ending-label>: -+ +---------- <-----------------+ pragma-clauses = --+-+-> pragma-option --+------------------+---> | +------- <---------+ | +-> PRAGMA ( -+-> pragma-option -+-> ) -+ +-------- , <-------+ pragma-option = --+-> ATOMIC ----------------------+--> +-> NOT ATOMIC ------------------+ +-> ON ALIAS <alias-name> -------+ +-> with-clause -----------------+ +-> optimize-clause -------------+ optimize-clause = --+---------------------------------------------------------------+---> +-> OPTIMIZE --+-+-> FOR -+-> FAST FIRST --------+----------+-+-+ | | +-> TOTAL TIME --------+ | | | | +-> SEQUENTIAL ACCESS -+ | | | +-> USING <outline-name> ------------------+ | | +-> WITH -+-> DEFAULT --+-> SELECTIVITY -+ | | | +-> SAMPLED --+ | | | | +-> AGGRESSIVE + | | | +-> AS <query-name> -----------------------+ | +---------------- <----------------------------+ with-clause = ---> WITH --> HOLD -+-------------------------------+-> +-> PRESERVE --+-> ON COMMIT ---+ +-> ON ROLLBACK -+ +-> ALL ---------+ +-> NONE --------+ variable-declaration = ---> DECLARE --+-> <variable-name> -+-+--------------+--+ +-------- , <--------+ +-> CONSTANT --+ | +-> UPDATABLE -+ | +-------------------------------------------------------+ +-+-> data-type ----+-+-------------------+-+----------------------+-> +-> <domain-name> + +-> default-clause -+ +-> constraint-clause -+ constraint-clause = --> CHECK --> (search-condition) -+--------------------------+-> +-> constraint-attributes -+ default-clause = --+-> DEFAULT --+--+--> date-time-literal -+-----> +-> = ------+ +--> interval-literal -+ +--> numeric-literal --+ +--> string-literal ---+ +--> : <variable-name> -+ compound-use-statement = ----+-> call-statement --------------+--> ; +-> commit-statement ------------+ +-> control-statement -----------+ +-> delete-statement ------------+ +-> get-diagnostics-statement ---+ +-> insert-statement ------------+ +-> lock-table-statement --------+ +-> rollback-statement ----------+ +-> set-transaction-statement ---+ +-> singleton-select-statement --+ +-> start-transaction-statement -+ +-> trace-statement -------------+ +-> update-statement ------------+ control-statement = ---+-> simple-case-statement ------+--> +-> case-searched-statement ----+ +-> compound-statement ---------+ +-> for-statement --------------+ +-> for-counted-loop-statement -+ +-> if-statement ---------------+ +-> iterate-statement ----------+ +-> leave-statement ------------+ +-> loop-statement -------------+ +-> repeat-statement -----------+ +-> return-statement -----------+ +-> set-assignment-statement ---+ +-> signal-statement -----------+ +-> trace-statement ------------+ +-> while-statement ------------+