Syntax

Click to skip syntax diagram
Read syntax diagramSkip visual syntax diagram>>-DECLARE--procedure-name--PROCEDURE--------------------------->
 
>--+-----------------------------------------+--option-list----><
   '-(--+-------------------------------+--)-'
        | .-,-------------------------. |
        | V                           | |
        '-----parameter-declaration---+-'
 
Read syntax diagramSkip visual syntax diagramparameter-declaration:
 
   .-IN----.
|--+-------+--+----------------+--data-type--+------------+-----|
   +-OUT---+  '-parameter-name-'             '-AS LOCATOR-'
   '-INOUT-'
 
data-type:
 
|--+-built-in-type------+---------------------------------------|
   '-distinct-type-name-'
 
Read syntax diagramSkip visual syntax diagramoption-list:
 
                             (1)
|--+-----------------------+------------------------------------>
   '-LANGUAGE--+-C-------+-'
               +-C++-----+
               +-CL------+
               +-COBOL---+
               +-COBOLLE-+
               +-FORTRAN-+
               +-JAVA----+
               +-PLI-----+
               +-REXX----+
               +-RPG-----+
               '-RPGLE---'
 
   .-PARAMETER STYLE SQL---------------------.
>--+-----------------------------------------+------------------>
   '-PARAMETER STYLE--+-DB2GENERAL---------+-'
                      +-DB2SQL-------------+
                      +-GENERAL------------+
                      +-GENERAL WITH NULLS-+
                      '-JAVA---------------'
 
   .-NOT DETERMINISTIC-.  .-MODIFIES SQL DATA-.
>--+-------------------+--+-------------------+----------------->
   '-DETERMINISTIC-----'  +-NO SQL------------+
                          +-CONTAINS SQL------+
                          '-READS SQL DATA----'
 
   .-CALLED ON NULL INPUT-.  .-DYNAMIC RESULT SETS--0-------.
>--+----------------------+--+------------------------------+--->
                             '-DYNAMIC RESULT SETS--integer-'
 
   .-NO DBINFO-.  .-FENCED-----.
>--+-----------+--+------------+--+-------------------+--------->
   '-DBINFO----'  '-NOT FENCED-'  +-PROGRAM TYPE MAIN-+
                                  '-PROGRAM TYPE SUB--'
 
   .-EXTERNAL-----------------------------.
>--+--------------------------------------+--------------------->
   '-EXTERNAL NAME--external-program-name-'
 
>--+-------------------------+----------------------------------|
   '-SPECIFIC--specific-name-'
 
Notes:
  1. The optional clauses can be specified in a different order.
Read syntax diagramSkip visual syntax diagrambuilt-in-type:
 
|--+-+---SMALLINT---+--------------------------------------------------------------------------+--|
   | +-+-INTEGER-+--+                                                                          |
   | | '-INT-----'  |                                                                          |
   | '---BIGINT-----'                                                                          |
   |                  .-(5,0)------------------------.                                         |
   +-+-+-DECIMAL-+-+--+------------------------------+-----------------------------------------+
   | | '-DEC-----' |  |             .-,0--------.    |                                         |
   | '-NUMERIC-----'  '-(--integer--+-----------+--)-'                                         |
   |                                '-, integer-'                                              |
   |          .-(--53--)------.                                                                |
   +-+-FLOAT--+---------------+-+--------------------------------------------------------------+
   | |        '-(--integer--)-' |                                                              |
   | +-REAL---------------------+                                                              |
   | |         .-PRECISION-.    |                                                              |
   | '-DOUBLE--+-----------+----'                                                              |
   |                    .-(--1--)-------.                                                      |
   +-+-+-+-CHARACTER-+--+---------------+----------+--+----------------+---------------------+-+
   | | | '-CHAR------'  '-(--integer--)-'          |  +-FOR BIT DATA---+                     | |
   | | '-+-+-CHARACTER-+--VARYING-+--(--integer--)-'  +-FOR SBCS DATA--+                     | |
   | |   | '-CHAR------'          |                   +-FOR MIXED DATA-+                     | |
   | |   '-VARCHAR----------------'                   '-ccsid-clause---'                     | |
   | |                                          .-(--1M--)-------------.                     | |
   | '-----+-+-CHARACTER-+--LARGE OBJECT-+------+----------------------+--+----------------+-' |
   |       | '-CHAR------'               |      '-(--integer--+---+--)-'  +-FOR SBCS DATA--+   |
   |       '-CLOB------------------------'                    +-K-+       +-FOR MIXED DATA-+   |
   |                                                          +-M-+       '-ccsid-clause---'   |
   |                                                          '-G-'                            |
   |                .-(--1--)-------.                                                          |
   +-+---GRAPHIC----+---------------+-------+--+--------------+--------------------------------+
   | |              '-(--integer--)-'       |  '-ccsid-clause-'                                |
   | +-+-GRAPHIC VARYING-+--(--integer--)---+                                                  |
   | | '-VARGRAPHIC------'                  |                                                  |
   | |             .-(--1M--)-------------. |                                                  |
   | '---DBCLOB----+----------------------+-'                                                  |
   |               '-(--integer--+---+--)-'                                                    |
   |                             +-K-+                                                         |
   |                             +-M-+                                                         |
   |                             '-G-'                                                         |
   |             .-(--1--)-------.                                                             |
   +-+-+-BINARY--+---------------+---------+-----------------+---------------------------------+
   | | |         '-(--integer--)-'         |                 |                                 |
   | | '-+-BINARY VARYING-+--(--integer--)-'                 |                                 |
   | |   '-VARBINARY------'                                  |                                 |
   | |                              .-(--1M--)-------------. |                                 |
   | '---+-BLOB----------------+----+----------------------+-'                                 |
   |     '-BINARY LARGE OBJECT-'    '-(--integer--+---+--)-'                                   |
   |                                              +-K-+                                        |
   |                                              +-M-+                                        |
   |                                              '-G-'                                        |
   +-+-DATE------+-----------------------------------------------------------------------------+
   | +-TIME------+                                                                             |
   | '-TIMESTAMP-'                                                                             |
   |             .-(--200--)-----.                                                             |
   +---DATALINK--+---------------+--+--------------+-------------------------------------------+
   |             '-(--integer--)-'  '-ccsid-clause-'                                           |
   '---ROWID-----------------------------------------------------------------------------------'
 
ccsid-clause:
 
                   .-NOT NORMALIZED-.
|--CCSID--integer--+----------------+---------------------------|
                   '-NORMALIZED-----'