DECLARE TRANSACTION --+---------------+-> +-> tx-options -+ +-> db-txns ----+ tx-options = --+-+----------------------------------------+-+-> | +-> NAME 'quoted-string' ----------------+ | | +-> EVALUATING -+- evaluating-clause --+-+ | | | +-------> , <----------+ | | | +-> RESERVING --+-> reserving-clause --+-+ | | | +-------- , <----------+ | | | +-> isolation-level ---------------------+ | | +-> transaction-mode --------------------+ | | +-> wait-option -------------------------+ | +----------------+-------+-------------------+ +-- , <-+ evaluating-clause = -+-------------+-> <constraint-name> -> AT -+-> VERB TIME ---+--> +-> <alias.> -+ +-> COMMIT TIME -+ reserving-clause = -+-+-> <view-name> ------------------------------------------------+-+-+ | +-> <table-name> -+-------------------------------------------+-+ | | | +-> PARTITION --> ( -+-> <part-num> -+-> ) -+ | | | +------ , <-----+ | | +----------------------------------- , <----------------------------+ | +---------------------------------------------------------------------+ +-> FOR -+--------------+--+-> READ ------------+---------------------> +-> EXCLUSIVE -+ +-> WRITE -----------+ +-> PROTECTED -+ +-> DATA DEFINITION -+ +-> SHARED ----+ isolation-level = ---> ISOLATION LEVEL --+-> READ COMMITTED ----+--> +-> REPEATABLE READ ---+ +-> SERIALIZABLE ------+ transaction-mode = --+-> READ ONLY ----+-> +-> READ WRITE ---+ +-> BATCH UPDATE -+ wait-option = --+-> WAIT -+---------------------+-+-> | +-> <timeout-value> --+ | +-> NOWAIT -----------------------+ db-txns = --+--------------------------------------------------------------+--> ++-> ON -+-> <alias> -+-> USING --> ( +-> tx-options --+-> ) -++ | +---- , <----+ +-> DEFAULTS ----+ | +-------------------------- AND <----------------------------+