DECLARE --+-> FUNCTION ---+-> <routine-name> ------------------+
            +-> PROCEDURE --+                                    |
    +----------------------------- <-----------------------------+
    +-+--------------------------------+-------------------------+
      +-> STORED NAME IS <identifier> -+                         |
    +--------------------------- <-------------------------------+
    +-> ( -+-----------------------+-> ) ------------------------+
           ++-> parameter-list --+-+                             |
            +-------- , <--------+                               |
    +--------------------------- <-------------------------------+
    +-+-------------------+--> --+------------------+---------------->
      +-> returns-clause -+      +-> LANGUAGE SQL --+
  parameter-list =
  -+----------+-+-------------------+-+-> data-type -----+----------+
   +-> IN ----+ +> <parameter-name> + +-> <domain-name> -+          |
   +-> OUT ---+                                                     |
   +-> INOUT -+                                                     |
  +-----------------------------------------------------------------+
  +-+---------------------------+--+---------------------+----------+
    +-> DEFAULT value-expr -----+  +-> mechanism-clause -+          |
   +------------------------------<---------------------------------+
   ++---------------------------------+------------------------------->
    +-> COMMENT IS -+-> 'string' ---+-+
                    +------ / <-----+
  mechanism-clause =
  ----> BY --+-> DESCRIPTOR -+--->
             +-> LENGTH -----+
             +-> REFERENCE --+
             +-> VALUE ------+
  returns-clause =
   ---> RETURNS -+> result-data-type -++---------------------+-->
                 +> <domain-name> ----++-> mechanism-clause -+