home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / lr.zip / LR_SQL.GR < prev    next >
Text File  |  1993-05-15  |  54KB  |  1,363 lines

  1. *_____________________________________________________________________________
  2. * SQL V2R3 - Structured Query Language
  3. * Philip R Brenan,  Transcendental Automation,  1992
  4. *_____________________________________________________________________________
  5. *
  6. LR
  7.  (name(LR_SQL)     title('SQL - Structured Query Language')
  8.   print struct code
  9.   rules
  10.    (S              (-(zero ignore) SQL_STATEMENTL)
  11.     SQL_STATEMENTL (SQL_STATEMENTS(repeat))
  12. *_____________________________________________________________________________
  13. * SQL statements
  14. *_____________________________________________________________________________
  15. *
  16.     SQL_STATEMENTS (SELECT_STATEMENT)
  17.                    (CREATE_ALIAS)
  18.                    (ALTER_DATABASE)
  19.                    (CREATE_DATABASE)
  20.                    (ALTER_INDEX)
  21.                    (CREATE_INDEX)
  22.                    (ALTER_STOGROUP)
  23.                    (CREATE_STOGROUP)
  24.                    (CREATE_SYNONYM)
  25.                    (ALTER_TABLE)
  26.                    (CREATE_TABLE)
  27.                    (ALTER_TS)
  28.                    (CREATE_TS)
  29.  
  30.                    (BEGIN_DECLARE_SECTION)
  31.                    (CLOSE_CURSOR)
  32.                    (COMMENT_ON)
  33.                    (COMMIT)
  34.                    (CONNECT)
  35.                    (CREATE_VIEW)
  36.                    (DECLARE_CURSOR)
  37.                    (DECLARE_STATEMENT)
  38.                    (DECLARE_TABLE)
  39.                    (DELETE)
  40.                    (DESCRIBE)
  41.                    (DROP)
  42.                    (END_DECLARE_SECTION)
  43.                    (EXECUTE)
  44.                    (EXECUTE_IMMEDIATE)
  45.                    (EXPLAIN)
  46.                    (FETCH)
  47.                    (GRANT)
  48.                    (INCLUDE)
  49.                    (INSERT)
  50.                    (LOCK_TABLE)
  51.                    (OPEN)
  52.                    (PREPARE)
  53.                    (REVOKE)
  54.                    (ROLLBACK)
  55.                    (SELECT_INTO)
  56.                    (SET_CURRENT_PACKAGESET)
  57.                    (SET_CURRENT_SQLID)
  58.                    (SET)
  59.                    (UPDATE)
  60.                    (WHENEVER)
  61.  
  62. *_____________________________________________________________________________
  63. * Select statement
  64. *_____________________________________________________________________________
  65. *
  66.     SELECT_STATEMENT
  67.                    (FULL_SELECT SELECT_FETCH    (zero)   END)
  68.                    (FULL_SELECT SELECT_ORDER_BY (repeat) END)
  69.                    (FULL_SELECT SELECT_UPDATE            END)
  70.     SELECT_FETCH   (for fetch only)
  71.                    (SELECT_OPTIMIZE_FOR)
  72.     SELECT_ORDER_BY(SELECT_ORDER_BY_CLAUSE SELECT_FETCH(optional))
  73.     SELECT_ORDER_BY_CLAUSE
  74.                    (order by SELECT_ORDER_COLUMN SELECT_ORDER_COLUMN2(zero))
  75.     SELECT_ORDER_COLUMN2
  76.                    (comma SELECT_ORDER_COLUMN)
  77.     SELECT_ORDER_COLUMN
  78.                    (SELECT_COLUMN ASC_DESC(optional))
  79.                    (INTEGER       ASC_DESC(optional))
  80.     ASC_DESC       ('asc' (mixed))
  81.                    ('desc'(mixed))
  82.     SELECT_OPTIMIZE_FOR
  83.                    (optimize for INTEGER row)
  84.     SELECT_UPDATE  (for update of SELECT_COLUMN SELECT_COLUMN2(zero) SELECT_OPTIMIZE_FOR(optional))
  85.  
  86.  
  87.     FULL_SELECT    (SELECT                   SELECT_UNIONS(zero))
  88.                    (openp FULL_SELECT closep SELECT_UNIONS(zero))
  89.     SELECT_UNIONS  (SELECT_UNION SELECT)
  90.                    (SELECT_UNION openp FULL_SELECT closep)
  91.     SELECT_UNION   (union)
  92.                    (union all)
  93.  
  94.     SELECT         (select SELECT_RANGE(optional) SELECT_CLAUSE
  95.                     SELECT_FROM
  96.                     SELECT_WHERE   (optional)
  97.                     SELECT_GROUP_BY(optional)
  98.                     SELECT_HAVING  (optional)
  99.                    )
  100.     SELECT_RANGE   ('all'     (mixed))
  101.                    ('distinct'(mixed))
  102.     SELECT_CLAUSE  (SELECT_ALL)
  103.                    (SELECT_COLE SELECT_COLE2(zero))
  104.     SELECT_COLE    (SELECT_COLE_TABLE)
  105.                    (EXPRESSION)
  106.     SELECT_COLE2   (comma SELECT_COLE)
  107.     SELECT_ALL     ('*')
  108.  
  109.     SELECT_FROM    (from  SELECT_TABLE SELECT_TABLE2(zero))
  110.     SELECT_TABLE2  (comma SELECT_TABLE)
  111.  
  112.     SELECT_WHERE   (where SEARCH_COND)
  113.  
  114.     SELECT_GROUP_BY(group by SELECT_COLUMN SELECT_COLUMN2(zero))
  115.  
  116.     SELECT_HAVING  (having SEARCH_COND)
  117.  
  118.     SEARCH_COND    (not(optional) PRED_SEARCH PRED_SEARCH2(zero))
  119.     PRED_SEARCH    (PREDICATE)
  120.                    (openp SEARCH_COND closep)
  121.     PRED_SEARCH2   (AND_OR not(optional) PRED_SEARCH)
  122.     AND_OR         ('and' (mixed))
  123.                    ('or'  (mixed))
  124.  
  125.     PREDICATE
  126.      'BASIC'       (EXPRESSION PRED_OP SELECT_EXPR)
  127.      'BETWEEN'     (EXPRESSION    not(optional) between EXPRESSION2 and EXPRESSION3)
  128.      'EXISTS'      (exists openp SELECT closep)
  129.      'IN_SELECT'   (EXPRESSION    not(optional) in openp SELECT closep)
  130.      'IN'          (EXPRESSION    not(optional) in openp IN_EXPR IN_EXPRS(zero) closep)
  131.      'LIKE'        (EXPRESSION    not(optional) like LIKE_EXPR ESCAPE(optional))
  132.      'NULL'        (EXPRESSION is not(optional) null)
  133.  
  134.     SELECT_EXPR2   (comma SELECT_EXPR)
  135.     SELECT_EXPR    (EXPRESSION)
  136.                    (QUANTIFIER(optional) openp SELECT closep)
  137.     QUANTIFIER     ('some'(mixed))
  138.                    ('any' (mixed))
  139.                    ('all' (mixed))
  140.     LIKE_EXPR      (SPECIAL_REGISTER)
  141.                    (HOST_VARIABLE)
  142.                    (STRING)
  143.     ESCAPE         (escape ESCAPE_EXPR)
  144.     ESCAPE_EXPR    (HOST_VARIABLE)
  145.                    (STRING)
  146.     IN_EXPR        (SPECIAL_REGISTER)
  147.                    (HOST_VARIABLE)
  148.                    (STRING)
  149.                    (NUMBER)
  150.     IN_EXPRS       (comma IN_EXPR)
  151.  
  152.     PRED_OP        ('=') ('!=') ('<>') ('>') ('!>') ('<') ('!<') ('>=') ('<=')
  153.  
  154.     EXPRESSION     (PLUS_EXPR   CONCAT_EXPRS(zero))
  155.     CONCAT_EXPRS   (CONCAT      PLUS_EXPR)
  156.     PLUS_EXPR      (TIMES_EXPR  PLUS_EXPRS(zero))
  157.     PLUS_EXPRS     (PLUS        TIMES_EXPR)
  158.     TIMES_EXPR     (      MONAD(optional) OPERAND TIMES_EXPRS(zero))
  159.     TIMES_EXPRS    (TIMES MONAD(optional) OPERAND)
  160.     MONAD          ('+') ('-')
  161.  
  162.     EXPRESSION2    (EXPRESSION)
  163.     EXPRESSION3    (EXPRESSION)
  164.     EXPRESSIONO    (comma EXPRESSION)
  165.     EXPRESSIONS    (comma EXPRESSION)
  166.  
  167.     OPERAND        (FUNCTION                DURATION(optional))
  168.                    (openp EXPRESSION closep DURATION(optional))
  169.                    (SPECIAL_REGISTER)
  170.                    (HOST_VARIABLE           DURATION(optional))
  171.                    (SELECT_COLUMN           DURATION(optional))
  172.                    (CONSTANT                DURATION(optional))
  173.  
  174.     SELECT_TABLE   (FAR_TABLE_NAME)
  175.     FAR_TABLE_NAME
  176.      'TABLE_FAR'   (VAR1 dot VAR2 dot VAR3 CID(optional))
  177.      'TABLE_Q'     (VAR1 dot VAR2          CID(optional))
  178.      'TABLE_NQ'    (VAR1                   CID(optional))
  179.  
  180.     CID            (VAR)
  181.  
  182.     SELECT_COLE_TABLE
  183.      'TABLE_FAR'   (VAR1 dot VAR2 dot VAR3 dot SELECT_ALL)
  184.      'TABLE_Q'     (VAR1 dot VAR2 dot SELECT_ALL)
  185.      'TABLE_NQ'    (VAR1 dot SELECT_ALL)
  186.  
  187.     SELECT_COLUMN  (FAR_COLUMN_NAME)
  188.     FAR_COLUMN_NAME
  189.      'FAR_COLUMN'  (VAR1 dot VAR2 dot VAR3 dot VAR4)
  190.      'TABLE_COLUMN'(VAR1 dot VAR2 dot VAR3)
  191.      'CID_COLUMN'  (VAR1 dot VAR2)
  192.      'COLUMN'      (VAR1)
  193.     VAR1           (VAR)
  194.     VAR2           (VAR)
  195.     VAR3           (VAR)
  196.     VAR4           (VAR)
  197.  
  198.     SELECT_COLUMN2 (comma SELECT_COLUMN)
  199.  
  200.     HOST_VARIABLE2 (comma HOST_VARIABLE)
  201.     HOST_VARIABLE  (colon HOST_IDENTIFIER HOST_IDENTIFIERO(optional) INDICATORO(optional))
  202.     HOST_IDENTIFIERO
  203.                    (dot HOST_IDENTIFIER)
  204.     HOST_IDENTIFIER
  205.                    (VAR)
  206.     INDICATORO     (indicator(optional) colon HOST_IDENTIFIER HOST_IDENTIFIERO)
  207.     indicator      ('indicator'   (mixed))
  208.  
  209.     SPECIAL_REGISTER
  210.                    (user)
  211.                    (current date)
  212.                    (current time)
  213.                    (current timestamp)
  214.                    (current timezone)
  215.                    (current sqlid)
  216.                    (current server)
  217.                    (current packageset)
  218.  
  219.     DURATION       ('year'        (mixed))
  220.                    ('years'       (mixed))
  221.                    ('month'       (mixed))
  222.                    ('months'      (mixed))
  223.                    ('day'         (mixed))
  224.                    ('days'        (mixed))
  225.                    ('hour'        (mixed))
  226.                    ('hours'       (mixed))
  227.                    ('minute'      (mixed))
  228.                    ('minutes'     (mixed))
  229.                    ('second'      (mixed))
  230.                    ('seconds'     (mixed))
  231.                    ('microsecond' (mixed))
  232.                    ('microseconds'(mixed))
  233.  
  234.     FUNCTION       (FUNCTION_NAME      openp EXPRESSION                        closep)
  235.                    (CHAR_FUNCTION      openp EXPRESSION DATE_FORMATO(optional) closep)
  236.                    (VALUE_FUNCTION     openp EXPRESSION EXPRESSIONS (repeat)   closep)
  237.                    (TIMESTAMP_FUNCTION openp EXPRESSION EXPRESSIONO (optional) closep)
  238.                    (SUBSTR_FUNCTION    openp EXPRESSION comma EXPRESSION2
  239.                                            EXPRESSIONO(optional)             closep)
  240.                    (DECIMAL_FUNCTION   openp EXPRESSION INTEGER2O(optional)    closep)
  241.                    (COLUMN_FUNCTION    openp EXPRESSION                        closep)
  242.                    (COLUMN_FUNCTION    openp ALL      EXPRESSION               closep)
  243.                    (COLUMN_FUNCTION    openp DISTINCT SELECT_COLUMN            closep)
  244.                    (COUNT_FUNCTION     openp DISTINCT SELECT_COLUMN            closep)
  245.                    (COUNT_FUNCTION     openp TIMES                             closep)
  246.     COUNT_FUNCTION ('count'    (mixed))
  247.     ALL            ('all'      (mixed))
  248.     DISTINCT       ('distinct' (mixed))
  249.     COLUMN_FUNCTION
  250.                    ('avg'   (mixed))
  251.                    ('min'   (mixed))
  252.                    ('max'   (mixed))
  253.                    ('sum'   (mixed))
  254.     DECIMAL_FUNCTION
  255.                    ('decimal'    (mixed))
  256.     INTEGER2O      (comma INTEGER INTEGER1O)
  257.     INTEGER1O      (comma INTEGER)
  258.  
  259.     SUBSTR_FUNCTION('substr'     (mixed))
  260.     VALUE_FUNCTION ('value'      (mixed))
  261.     TIMESTAMP_FUNCTION
  262.                    ('timestamp'  (mixed))
  263.     CHAR_FUNCTION  ('char'       (mixed))
  264.     DATE_FORMATO   (comma DATE_FORMAT)
  265.     DATE_FORMAT    ('iso'        (mixed))
  266.                    ('usa'        (mixed))
  267.                    ('eur'        (mixed))
  268.                    ('jis'        (mixed))
  269.                    ('local'      (mixed))
  270.     FUNCTION_NAME  ('date'       (mixed))
  271.                    ('day'        (mixed))
  272.                    ('days'       (mixed))
  273.                    ('digits'     (mixed))
  274.                    ('float'      (mixed))
  275.                    ('hex'        (mixed))
  276.                    ('hour'       (mixed))
  277.                    ('integer'    (mixed))
  278.                    ('length'     (mixed))
  279.                    ('microsecond'(mixed))
  280.                    ('minute'     (mixed))
  281.                    ('month'      (mixed))
  282.                    ('second'     (mixed))
  283.                    ('time'       (mixed))
  284.                    ('vargraphic' (mixed))
  285.                    ('year'       (mixed))
  286.  
  287.     CONCAT         ('||') ('concat'(mixed))
  288.     PLUS           ('+')
  289.                    ('-')
  290.     TIMES          ('*')
  291.                    ('/')
  292. *_____________________________________________________________________________
  293. * Create Alias
  294. *_____________________________________________________________________________
  295. *
  296.     CREATE_ALIAS   (create alias ALIAS_NAME for TABLE_NAME END)
  297.     ALIAS_NAME     (VAR)
  298.     TABLE_NAME     (VAR1 dot VAR2)
  299.                    (VAR1)
  300. *_____________________________________________________________________________
  301. * Alter/Create Database
  302. *_____________________________________________________________________________
  303. *
  304.     ALTER_DATABASE (alter database DATABASE_NAME
  305.                     CREATE_DATABASE_OPTIONS(choice optional)
  306.                     END
  307.                    )
  308.     CREATE_DATABASE(create database DATABASE_NAME
  309.                     CREATE_DATABASE_OPTIONS(choice optional)
  310.                     END
  311.                    )
  312.     CREATE_DATABASE_OPTIONS
  313.                    (STOGROUP)
  314.                    (BUFFERPOOL3)
  315.                    (ROSHARE)
  316.     STOGROUP       (stogroup   STOGROUP_NAME)
  317.     BUFFERPOOL3    (bufferpool BP3)
  318.     BP3            (bp0)
  319.                    (bp1)
  320.                    (bp2)
  321.                    (bp32k)
  322.     ROSHARE        (roshare owner)
  323.                    (roshare read)
  324. *_____________________________________________________________________________
  325. * Alter/Create Index
  326. *_____________________________________________________________________________
  327. *
  328.     ALTER_INDEX    (alter index INDEX_NAME
  329.                     ALTER_INDEX_OPTIONS(choice optional)
  330.                     END
  331.                    )
  332.     ALTER_INDEX_OPTIONS
  333.                    (USING_BLOCK)
  334.                    (FREEPAGE)
  335.                    (PCTFREE)
  336.                    (CLUSTER)
  337.                    (SUBPAGES)
  338.                    (BUFFERPOOL2)
  339.                    (CLOSE)
  340.                    (DSETPASS)
  341.     CREATE_INDEX   (create unique(optional) index INDEX_NAME
  342.                     CREATE_INDEX_OPTIONS(choice optional)
  343.                     END
  344.                    )
  345.     CREATE_INDEX_OPTIONS
  346.                    (on TABLE_NAME openp INDEX_COLUMN INDEX_COLUMN2(zero) closep)
  347.                    (USING_BLOCK)
  348.                    (FREEPAGE)
  349.                    (PCTFREE)
  350.                    (CLUSTER)
  351.                    (SUBPAGES)
  352.                    (BUFFERPOOL2)
  353.                    (CLOSE)
  354.                    (DSETPASS)
  355.     INDEX_NAME     (VAR1 dot VAR2)
  356.                    (VAR1)
  357.     INDEX_COLUMN2  (comma INDEX_COLUMN)
  358.     INDEX_COLUMN   (COLUMN_NAME)
  359.                    (COLUMN_NAME asc)
  360.                    (COLUMN_NAME desc)
  361.     CLUSTER        (cluster)
  362.                    (cluster openp INDEX_PART INDEX_PART2(zero) closep)
  363.     INDEX_PART2    (comma INDEX_PART)
  364.     INDEX_PART     (part INTEGER INDEX_PART_OPTIONS(choice optional))
  365.     INDEX_PART_OPTIONS
  366.                    (values openp INDEX_VALUE INDEX_VALUE2(zero) closep)
  367.                    (USING_BLOCK)
  368.                    (FREEPAGE)
  369.                    (PCTFREE)
  370.     INDEX_VALUE2   (comma INDEX_VALUE)
  371.     INDEX_VALUE    (CONSTANT)
  372.     SUBPAGES       (subpages INTEGER)
  373.     BUFFERPOOL2    (bufferpool BP2)
  374.     BP2            (bp0)
  375.                    (bp1)
  376.                    (bp2)
  377.     CLOSE          (close yes)
  378.                    (close no)
  379.     DSETPASS       (dsetpass   PASSWORD)
  380.     USING_BLOCK    (using vcat VCAT)
  381.                    (using stogroup STOGROUP_NAME SPACE_OPTIONS(choice optional))
  382.     SPACE_OPTIONS  (priqty INTEGER)
  383.                    (secqty INTEGER)
  384.                    (erase  yes)
  385.                    (erase  no)
  386.     FREEPAGE       (freepage  INTEGER)
  387.     PCTFREE        (pctfree   INTEGER)
  388. *_____________________________________________________________________________
  389. * Alter/Create Stogroup
  390. *_____________________________________________________________________________
  391. *
  392.     ALTER_STOGROUP (alter stogroup STOGROUP_NAME
  393.                     ALTER_STOGROUP_OPTIONS(choice optional)
  394.                     END
  395.                    )
  396.     STOGROUP_NAME  (VAR)
  397.     STOGROUP_NAME2 (comma STOGROUP_NAME)
  398.     ALTER_STOGROUP_OPTIONS
  399.                    (ADD_VOLUMES)
  400.                    (REMOVE_VOLUMES)
  401.                    (password PASSWORD(optional))
  402.     ADD_VOLUMES    (add    volumes openp VOLUME VOLUME2(zero) closep)
  403.     REMOVE_VOLUMES (remove volumes openp VOLUME VOLUME2(zero) closep)
  404.  
  405.     CREATE_STOGROUP(create stogroup STOGROUP_NAME
  406.                     CREATE_STOGROUP_OPTIONS(choice optional)
  407.                     END
  408.                    )
  409.     CREATE_STOGROUP_OPTIONS
  410.                    (volumes openp VOLUME VOLUME2(zero) closep)
  411.                    (vcat VCAT PASSWORD(optional))
  412.     VOLUME2        (comma VOLUME)
  413.     VOLUME         (VAR)
  414.     VCAT           (VAR)
  415.     PASSWORD       (VAR)
  416. *_____________________________________________________________________________
  417. * Create Synonym
  418. *_____________________________________________________________________________
  419. *
  420.     CREATE_SYNONYM (create synonym  SYNONYM_NAME for TABLE_NAME END)
  421.     SYNONYM_NAME   (VAR)
  422. *_____________________________________________________________________________
  423. * Alter/Create Table
  424. *_____________________________________________________________________________
  425. *
  426.     ALTER_TABLE    (alter table TABLE_NAME
  427.                     ALTER_TABLE_OPTIONS(choice optional)
  428.                     END
  429.                    )
  430.     ALTER_TABLE_OPTIONS
  431.                    (add COLUMN_NAME DATA_TYPE ALTER_COLUMN_OPTIONS(choice optional))
  432.                    (validproc null)
  433.                    (validproc PROC_NAME)
  434.                    (AUDIT)
  435.                    (add(optional) primary key openp COLUMN_NAME COLUMN_NAME2(zero) closep)
  436.                    (add(optional) foreign key CONSTRAINT_NAME(optional)
  437.                     CREATE_CONSTRAINT_OPTIONS(choice optional)
  438.                    )
  439.                    (data capture none)
  440.                    (data capture changes)
  441.                    (drop primary key)
  442.                    (drop foreign key CONSTRAINT_NAME)
  443.     CONSTRAINT_NAME(VAR)
  444.     PROC_NAME      (VAR)
  445.     ALTER_COLUMN_OPTIONS
  446.                    (FOR_BIT)
  447.                    (FIELD_PROC)
  448.                    (not null with default)
  449.  
  450.     CREATE_TABLE   (create table TABLE_NAME openp COLUMNS_LIKE closep
  451.                     CREATE_TABLE_OPTIONS(choice optional)
  452.                     END
  453.                    )
  454.     CREATE_TABLE_OPTIONS
  455.                    (TABLE_IN)
  456.                    (EDITPROC)
  457.                    (VALIDPROC)
  458.                    (AUDIT)
  459.                    (OBID)
  460.                    (DATACAPTURE)
  461.     TABLE_IN       (in DATABASE_NAME dot TABLESPACE_NAME)
  462.                    (in database DATABASE_NAME)
  463.     TABLESPACE_NAME(VAR)
  464.     EDITPROC       (editproc  PROC_NAME)
  465.     VALIDPROC      (validproc PROC_NAME)
  466.     AUDIT          (audit none)
  467.                    (audit changes)
  468.                    (audit all)
  469.     DATACAPTURE    (data capture none)
  470.                    (data capture changes)
  471.     OBID           (obid INTEGER)
  472.     COLUMNS_LIKE   (like TABLE_NAME)
  473.                    (COLUMN COLUMN2(zero))
  474.     COLUMN2        (comma  COLUMN)
  475.     COLUMN         (primary key openp COLUMN_NAME COLUMN_NAME2(zero) closep)
  476.                    (unique      openp COLUMN_NAME COLUMN_NAME2(zero) closep)
  477.                    (foreign key CONSTRAINT_NAME(optional)
  478.                     CREATE_CONSTRAINT_OPTIONS(choice optional)
  479.                    )
  480.                    (COLUMN_NAME DATA_TYPE COLUMN_OPTIONS(choice optional))
  481.     COLUMN_NAME    (VAR)
  482.     COLUMN_NAME2   (comma COLUMN_NAME)
  483.     COLUMN_OPTIONS (FOR_BIT)
  484.                    (NULLITY)
  485.  
  486.     DATA_TYPE      (integer)  (int) (smallint)
  487.                    (float      COLUMN_WIDTH (optional))
  488.                    (decimal    DECIMAL_WIDTH(optional))
  489.                    (dec        DECIMAL_WIDTH(optional))
  490.                    (character  COLUMN_WIDTH (optional))
  491.                    (char       COLUMN_WIDTH (optional))
  492.                    (varchar    COLUMN_WIDTH (optional))
  493.                    (long varchar)
  494.                    (graphic    COLUMN_WIDTH (optional))
  495.                    (vargraphic COLUMN_WIDTH (optional))
  496.                    (long vargraphic)
  497.                    (date) (time) (timestamp)
  498.     COLUMN_WIDTH   (openp INTEGER closep)
  499.     DECIMAL_WIDTH  (openp PRECISION closep)
  500.                    (openp PRECISION comma SCALE closep)
  501.     PRECISION      (INTEGER)
  502.     SCALE          (INTEGER)
  503.  
  504.     FOR_BIT        (for sbcs  data)
  505.                    (for mixed data)
  506.                    (for bit   data)
  507.  
  508.  
  509.     NULLITY        (not null FIELD_PROC(optional))
  510.                    (not null with default)
  511.                    (not null unique)
  512.     FIELD_PROC     (fieldproc PROC_NAME openp FIELD_PROC_P FIELD_PROC_P2(zero) closep)
  513.     FIELD_PROC_P   (CONSTANT)
  514.     FIELD_PROC_P2  (comma FIELD_PROC_P)
  515.  
  516.  
  517.     CREATE_CONSTRAINT_OPTIONS
  518.                    (openp COLUMN_NAME COLUMN_NAME2(zero) closep)
  519.                    (references TABLE_NAME)
  520.                    (CONSTRAINT_DELETE)
  521.     CONSTRAINT_DELETE
  522.                    (on delete restrict)
  523.                    (on delete cascade)
  524.                    (on delete set null)
  525. *_____________________________________________________________________________
  526. * Alter/Create Tablespace
  527. *_____________________________________________________________________________
  528. *
  529.     ALTER_TS       (alter tablespace DB_TS
  530.                     ALTER_TS_OPTIONS(choice optional)
  531.                     END
  532.                    )
  533.     ALTER_TS_OPTIONS
  534.                    (BUFFERPOOL2)
  535.                    (LOCKSIZE)
  536.                    (CLOSE)
  537.                    (dsetpass   PASSWORD)
  538.                    (part       INTEGER)
  539.                    (freepage   INTEGER)
  540.                    (pctfree    INTEGER)
  541.                    (using vcat VCAT)
  542.                    (using stogroup STOGROUP_NAME)
  543.                    (priqty INTEGER)
  544.                    (secqty INTEGER)
  545.                    (ERASE)
  546.  
  547.     CREATE_TS      (create tablespace TABLESPACE_NAME
  548.                     CREATE_TS_OPTIONS(choice optional)
  549.                     END
  550.                    )
  551.     CREATE_TS_OPTIONS
  552.                    (IN_DATABASE)
  553.                    (USING_BLOCK)
  554.                    (FREEPAGE)
  555.                    (PCTFREE)
  556.                    (TS_PARTS)
  557.                    (BUFFERPOOL3)
  558.                    (LOCKSIZE)
  559.                    (CLOSE)
  560.                    (DSETPASS)
  561.  
  562.     IN_DATABASE    (in DATABASE_NAME)
  563.     TS_PARTS       (TS_NUMPARTS)
  564.                    (segsize  INTEGER)
  565.     TS_NUMPARTS    (numparts INTEGER)
  566.                    (numparts INTEGER
  567.                     openp TS_NUMPART TS_NUMPART2(zero) closep)
  568.     TS_NUMPART     (part INTEGER
  569.                     USING_BLOCK(optional)
  570.                     FREEPAGE   (optional)
  571.                     PCTFREE    (optional)
  572.                    )
  573.     TS_NUMPART2    (comma TS_NUMPART)
  574.     LOCKSIZE       (locksize any)
  575.                    (locksize page)
  576.                    (locksize tablespace)
  577.                    (locksize table)
  578.     ERASE          (erase  yes)
  579.                    (erase  no)
  580. *_____________________________________________________________________________
  581. * Begin/End Declare Section
  582. *_____________________________________________________________________________
  583. *
  584.     BEGIN_DECLARE_SECTION
  585.                    (begin declare section END)
  586.     END_DECLARE_SECTION
  587.                    (end declare section END)
  588. *_____________________________________________________________________________
  589. * Create View
  590. *_____________________________________________________________________________
  591. *
  592.     CREATE_VIEW    (create view VIEW_NAME VIEW_COLUMNS(optional)
  593.                     as SELECT
  594.                     WITH_CHECK_OPTION(optional)
  595.                     END
  596.                    )
  597.     VIEW_COLUMNS   (openp COLUMN_NAME COLUMN_NAME2(zero) closep)
  598.     WITH_CHECK_OPTION
  599.                    (with check option)
  600. *_____________________________________________________________________________
  601. * CLOSE
  602. *_____________________________________________________________________________
  603. *
  604.     CLOSE_CURSOR   (close CURSOR_NAME END)
  605.     CURSOR_NAME    (VAR)
  606. *_____________________________________________________________________________
  607. * COMMENT ON
  608. *_____________________________________________________________________________
  609. *
  610.     COMMENT_ON     (COMMENT_LABEL on COMMENT_OBJECT is STRING END)
  611.                    (COMMENT_LABEL on TABLE_NAME openp COMMENT_COLUMN COMMENT_COLUMN2 closep END)
  612.     COMMENT_LABEL  (comment)
  613.                    (label)
  614.     COMMENT_OBJECT (table TABLE_NAME)
  615.                    (alias ALIAS_NAME)
  616.                    (column TABLE_COLUMN_NAME)
  617.     COMMENT_COLUMN (COLUMN_NAME is STRING)
  618.     COMMENT_COLUMN2(comma COMMENT_COLUMN)
  619.     TABLE_COLUMN_NAME
  620.                    (VAR1 dot VAR2)
  621.                    (VAR1 dot VAR2 dot VAR3)
  622. *_____________________________________________________________________________
  623. * COMMIT/ROLLBACK
  624. *_____________________________________________________________________________
  625. *
  626.     COMMIT         (commit   work(optional) END)
  627.     ROLLBACK       (rollback work(optional) END)
  628. *_____________________________________________________________________________
  629. * CONNECT
  630. *_____________________________________________________________________________
  631. *
  632.     CONNECT        (connect END)
  633.                    (connect to HOST_VARIABLE END)
  634.                    (connect to LOCATION_NAME END)
  635.                    (connect reset)
  636.     LOCATION_NAME  (VAR)
  637. *_____________________________________________________________________________
  638. * DECLARE
  639. *_____________________________________________________________________________
  640. *
  641.     DECLARE_CURSOR (declare TABLE_NAME cursor WITH_HOLD(optional)
  642.                     for DECLARE_FOR
  643.                     END
  644.                    )
  645.     WITH_HOLD      (with hold)
  646.     DECLARE_FOR    (SELECT_STATEMENT)
  647.                    (STATEMENT_NAME)
  648.  
  649.     DECLARE_STATEMENT
  650.                    (declare TABLE_NAME STATEMENT_NAME2(zero) statement END)
  651.     STATEMENT_NAME (VAR)
  652.     STATEMENT_NAME2(comma STATEMENT_NAME)
  653.  
  654.     DECLARE_TABLE  (declare
  655.                     TABLE_NAME
  656.                     table openp DECLARE_COLUMN DECLARE_COLUMN2(zero) closep
  657.                     END
  658.                    )
  659.     DECLARE_COLUMN2(comma DECLARE_COLUMN)
  660.     DECLARE_COLUMN (COLUMN_NAME DATA_TYPE DECLARE_NULLITY(optional))
  661.     DECLARE_NULLITY(not null)
  662.                    (not null with default)
  663. *_____________________________________________________________________________
  664. * Delete
  665. *_____________________________________________________________________________
  666. *
  667.     DELETE         (delete from SELECT_TABLE
  668.                     WHERE_TYPE(optional)
  669.                     END
  670.                    )
  671.     WHERE_TYPE     (where SEARCH_COND)
  672.                    (where current of CURSOR_NAME)
  673. *_____________________________________________________________________________
  674. * Describe
  675. *_____________________________________________________________________________
  676. *
  677.     DESCRIBE       (describe DESCRIBE_OBJECT
  678.                     into DESCRIPTOR_NAME
  679.                     USING(optional)
  680.                     END
  681.                    )
  682.     DESCRIBE_OBJECT(STATEMENT_NAME)
  683.                    (table HOST_VARIABLE)
  684.     DESCRIPTOR_NAME(VAR)
  685. *_____________________________________________________________________________
  686. * Drop
  687. *_____________________________________________________________________________
  688. *
  689.     DROP           (drop         DROP_OBJECT)
  690.     DROP_OBJECT    (alias        ALIAS_NAME)
  691.                    (database     DATABASE_NAME)
  692.                    (index        INDEX_NAME)
  693.                    (stogroup     STOGROUP_NAME)
  694.                    (synonym      SYNONYM_NAME)
  695.                    (table        TABLE_NAME)
  696.                    (tablespace   DB_TS)
  697.                    (view         VIEW_NAME)
  698.                    (PACKAGE_PROGRAM COLLECTION_ID dot PACKAGE_ID VERSION(optional))
  699.     VERSION        (version(optional) VERSION_ID)
  700.     COLLECTION_ID  (VAR)
  701.     PACKAGE_ID     (VAR)
  702.     VERSION_ID     (VAR)
  703.     PACKAGE_PROGRAM(package)
  704.                    (program)
  705.     VIEW_NAME      (TABLE_NAME)
  706. *_____________________________________________________________________________
  707. * Execute
  708. *_____________________________________________________________________________
  709. *
  710.     EXECUTE        (execute STATEMENT_NAME USING_DESCRIPTOR(optional) END)
  711.  
  712.     EXECUTE_IMMEDIATE
  713.                    (execute immediate STRING        END)
  714.                    (execute immediate HOST_VARIABLE END)
  715. *_____________________________________________________________________________
  716. * Explain
  717. *_____________________________________________________________________________
  718. *
  719.     EXPLAIN        (explain EXPLAIN_OBJECT
  720.                     EXPLAIN_QUERYNO(optional)
  721.                     for SQL_STATEMENTS
  722.                    )
  723.  
  724.     EXPLAIN_OBJECT (plan)
  725.                    (all)
  726.     EXPLAIN_QUERYNO(set queryno equals INTEGER)
  727. *_____________________________________________________________________________
  728. * Fetch
  729. *_____________________________________________________________________________
  730. *
  731.     FETCH          (fetch CURSOR_NAME into HOST_VARIABLE HOST_VARIABLE2(zero) END)
  732.     FETCH          (fetch CURSOR_NAME using descriptor DESCRIPTOR_NAME END)
  733. *_____________________________________________________________________________
  734. * Grant
  735. *_____________________________________________________________________________
  736. *
  737.     GRANT          (grant GRANTS END)
  738.     GRANTS         (GRANT_COLLECTION)
  739.                    (GRANT_DATABASE)
  740.                    (GRANT_PACKAGE)
  741.                    (GRANT_PLAN)
  742.                    (GRANT_SYSTEM)
  743.                    (GRANT_TABLE)
  744.                    (GRANT_USE)
  745. *_____________________________________________________________________________
  746. * Grant collection
  747. *_____________________________________________________________________________
  748. *
  749.     GRANT_COLLECTION
  750.                    (COLLECTION_TYPE
  751.                     ON_IN
  752.                     collection COLLECTION_OBJECT
  753.                     TO_AUTH(choice optional)
  754.                    )
  755.     COLLECTION_TYPE
  756.                    (create)
  757.                    (packadm)
  758.     ON_IN          (on)
  759.                    (in)
  760.  
  761.     COLLECTION_OBJECT
  762.                    (COLLECTION_ID COLLECTION_ID2(zero))
  763.                    (star)
  764.     COLLECTION_ID2 (comma COLLECTION_ID)
  765.  
  766.     TO_AUTH        (to PUBLIC_AUTH_ID PUBLIC_AUTH_ID2(zero))
  767.                    (with grant option)
  768.     PUBLIC_AUTH_ID (AUTH_ID)
  769.                    (public)
  770.     PUBLIC_AUTH_ID2(comma PUBLIC_AUTH_ID)
  771.  
  772.     TO_FAR_AUTH    (to FAR_PUBLIC_AUTH_ID FAR_PUBLIC_AUTH_ID2(zero))
  773.                    (with grant option)
  774.     FAR_PUBLIC_AUTH_ID
  775.                    (AUTH_ID)
  776.                    (public)
  777.                    (public at all locations)
  778.     FAR_PUBLIC_AUTH_ID2
  779.                    (comma FAR_PUBLIC_AUTH_ID)
  780.     AUTH_ID        (VAR)
  781.     AUTH_ID2       (comma AUTH_ID)
  782. *_____________________________________________________________________________
  783. * Grant database
  784. *_____________________________________________________________________________
  785. *
  786.     GRANT_DATABASE (DATABASE_PRIVILEGE DATABASE_PRIVILEGE2(zero)
  787.                     on database DATABASE_NAME DATABASE_NAME2(zero)
  788.                     TO_AUTH
  789.                    )
  790.     DATABASE_PRIVILEGE2
  791.                    (comma DATABASE_PRIVILEGE)
  792.  
  793.     DATABASE_PRIVILEGE
  794.                    (dbadm)
  795.                    (dbctrl)
  796.                    (dbmaint)
  797.                    (createtab)
  798.                    (createts)
  799.                    (displaydb)
  800.                    (drop)
  801.                    (imagcopy)
  802.                    (load)
  803.                    (recoverdb)
  804.                    (reorg)
  805.                    (repair)
  806.                    (startdb)
  807.                    (stats)
  808.                    (stopdb)
  809.  
  810.     DATABASE_NAME  (VAR)
  811.     DATABASE_NAME2 (comma DATABASE_NAME)
  812. *_____________________________________________________________________________
  813. * Grant package
  814. *_____________________________________________________________________________
  815. *
  816.     GRANT_PACKAGE  (PACKAGE_PRIVILEGE PACKAGE_PRIVILEGE2(zero)
  817.                     on PACKAGE_OBJECT
  818.                     PACKAGE PACKAGE2(zero)
  819.                     TO_AUTH
  820.                    )
  821.                    (all
  822.                     on PACKAGE_OBJECT
  823.                     PACKAGE PACKAGE2(zero)
  824.                     TO_AUTH
  825.                    )
  826.     PACKAGE_PRIVILEGE2
  827.                    (comma PACKAGE_PRIVILEGE)
  828.     PACKAGE_PRIVILEGE
  829.                    (bind)
  830.                    (execute)
  831.                    (copy)
  832.                    (run)
  833.     PACKAGE_OBJECT (package)
  834.                    (program)
  835.     PACKAGE        (COLLECTION_ID dot star)
  836.                    (COLLECTION_ID dot PACKAGE_ID)
  837.     PACKAGE2       (comma PACKAGE)
  838.  
  839. *_____________________________________________________________________________
  840. * Grant plan
  841. *_____________________________________________________________________________
  842. *
  843.     GRANT_PLAN     (PACKAGE_PRIVILEGE PACKAGE_PRIVILEGE2(zero)
  844.                     on plan PLAN_NAME PLAN_NAME2(zero)
  845.                     TO_AUTH
  846.                    )
  847.     PLAN_NAME      (VAR)
  848.     PLAN_NAME2     (comma PLAN_NAME)
  849. *_____________________________________________________________________________
  850. * Grant system
  851. *_____________________________________________________________________________
  852. *
  853.     GRANT_SYSTEM   (SYSTEM_PRIVILEGE SYSTEM_PRIVILEGE2(zero)
  854.                     TO_AUTH
  855.                    )
  856.     SYSTEM_PRIVILEGE2
  857.                    (comma SYSTEM_PRIVILEGE)
  858.     SYSTEM_PRIVILEGE
  859.                    (archive)
  860.                    (bindadd)
  861.                    (bindagent)
  862.                    (bsds)
  863.                    (createalias)
  864.                    (createdba)
  865.                    (createdbc)
  866.                    (createsg)
  867.                    (display)
  868.                    (monitor1)
  869.                    (monitor2)
  870.                    (recover)
  871.                    (stopall)
  872.                    (stospace)
  873.                    (sysadm)
  874.                    (sysctrl)
  875.                    (sysopr)
  876.                    (trace)
  877. *_____________________________________________________________________________
  878. * Grant table
  879. *_____________________________________________________________________________
  880. *
  881.     GRANT_TABLE    (TABLE_PRIVILEGE TABLE_PRIVILEGE2(zero)
  882.                     on table(optional) TABLE_NAME TABLE_NAME2(zero)
  883.                     TO_FAR_AUTH(choice optional)
  884.                    )
  885.                    (all privilege(optional)
  886.                     on table(optional) TABLE_NAME TABLE_NAME2(zero)
  887.                     TO_FAR_AUTH(choice optional)
  888.                    )
  889.     TABLE_PRIVILEGE2
  890.                    (comma TABLE_PRIVILEGE)
  891.     TABLE_PRIVILEGE(alter)
  892.                    (delete)
  893.                    (index)
  894.                    (insert)
  895.                    (select)
  896.                    (update TABLE_UPDATE)
  897.     TABLE_UPDATE   (openp COLUMN_NAME COLUMN_NAME2(zero) closep)
  898.     TABLE_NAME2    (comma TABLE_NAME)
  899. *_____________________________________________________________________________
  900. * Grant use
  901. *_____________________________________________________________________________
  902. *
  903.     GRANT_USE      (use of USE_OBJECT
  904.                     TO_AUTH
  905.                    )
  906.     USE_OBJECT     (bufferpool BP3           BP32(zero))
  907.                    (stogroup   STOGROUP_NAME STOGROUP_NAME2(zero))
  908.                    (tablespace DB_TS         DB_TS2(zero))
  909.     BP32           (comma BP3)
  910.     DB_TS          (TS1)
  911.                    (TS1 dot TS2)
  912.     TS1            (VAR)
  913.     TS2            (VAR)
  914.     DB_TS2         (comma DB_TS)
  915. *_____________________________________________________________________________
  916. * Include
  917. *_____________________________________________________________________________
  918. *
  919.     INCLUDE        (include sqlca END)
  920.                    (include sqlda END)
  921.                    (include VAR   END)
  922. *_____________________________________________________________________________
  923. * Insert
  924. *_____________________________________________________________________________
  925. *
  926.     INSERT         (insert into SELECT_TABLE openp COLUMN_NAME COLUMN_NAME2(zero) closep
  927.                     values INSERT_VALUES
  928.                     END
  929.                    )
  930.     INSERT_VALUES  (openp SELECT_EXPR SELECT_EXPR2(zero) closep)
  931.                    (SELECT)
  932. *_____________________________________________________________________________
  933. * Lock Table
  934. *_____________________________________________________________________________
  935. *
  936.     LOCK_TABLE     (lock TABLE_NAME in share     mode END)
  937.                    (lock TABLE_NAME in exclusive mode END)
  938. *_____________________________________________________________________________
  939. * Open
  940. *_____________________________________________________________________________
  941. *
  942.     OPEN           (open CURSOR_NAME USING_DESCRIPTOR(optional) END)
  943.     USING_DESCRIPTOR
  944.                    (using HOST_VARIABLE HOST_VARIABLE2(zero))
  945.                    (using descriptor DESCRIPTOR_NAME)
  946. *_____________________________________________________________________________
  947. * Prepare
  948. *_____________________________________________________________________________
  949. *
  950.     PREPARE        (prepare STATEMENT_NAME PREPARE_INTO(optional) END)
  951.     PREPARE_INTO   (into  DESCRIPTOR_NAME USING(optional))
  952.     USING          (using names)
  953.                    (using labels)
  954.                    (using any)
  955.                    (using both)
  956. *_____________________________________________________________________________
  957. * Revoke
  958. *_____________________________________________________________________________
  959. *
  960.     REVOKE         (revoke REVOKES END)
  961.     REVOKES        (REVOKE_COLLECTION)
  962.                    (REVOKE_DATABASE)
  963.                    (REVOKE_PACKAGE)
  964.                    (REVOKE_PLAN)
  965.                    (REVOKE_SYSTEM)
  966.                    (REVOKE_TABLE)
  967.                    (REVOKE_USE)
  968. *_____________________________________________________________________________
  969. * Revoke collection
  970. *_____________________________________________________________________________
  971. *
  972.     REVOKE_COLLECTION
  973.                    (COLLECTION_TYPE
  974.                     ON_IN
  975.                     collection COLLECTION_OBJECT
  976.                     FROM_AUTH(choice optional)
  977.                    )
  978.  
  979.     FROM_AUTH      (from PUBLIC_AUTH_ID PUBLIC_AUTH_ID2(zero))
  980.                    (by AUTH_ID AUTH_ID2(zero))
  981.                    (by all)
  982.  
  983.     FROM_FAR_AUTH  (from FAR_PUBLIC_AUTH_ID FAR_PUBLIC_AUTH_ID2(zero))
  984.                    (by all)
  985.  
  986. *_____________________________________________________________________________
  987. * Revoke database
  988. *_____________________________________________________________________________
  989. *
  990.     REVOKE_DATABASE(DATABASE_PRIVILEGE DATABASE_PRIVILEGE2(zero)
  991.                     on database DATABASE_NAME DATABASE_NAME2(zero)
  992.                     FROM_AUTH
  993.                    )
  994. *_____________________________________________________________________________
  995. * Revoke package
  996. *_____________________________________________________________________________
  997. *
  998.     REVOKE_PACKAGE (PACKAGE_PRIVILEGE PACKAGE_PRIVILEGE2(zero)
  999.                     on PACKAGE_OBJECT
  1000.                     PACKAGE PACKAGE2(zero)
  1001.                     FROM_AUTH
  1002.                    )
  1003.                    (all
  1004.                     on PACKAGE_OBJECT
  1005.                     PACKAGE PACKAGE2(zero)
  1006.                     FROM_AUTH
  1007.                    )
  1008.  
  1009. *_____________________________________________________________________________
  1010. * REVOKE plan
  1011. *_____________________________________________________________________________
  1012. *
  1013.     REVOKE_PLAN    (PACKAGE_PRIVILEGE PACKAGE_PRIVILEGE2(zero)
  1014.                     on plan PLAN_NAME PLAN_NAME2(zero)
  1015.                     FROM_AUTH
  1016.                    )
  1017. *_____________________________________________________________________________
  1018. * REVOKE system
  1019. *_____________________________________________________________________________
  1020. *
  1021.     REVOKE_SYSTEM  (SYSTEM_PRIVILEGE SYSTEM_PRIVILEGE2(zero)
  1022.                     FROM_AUTH
  1023.                    )
  1024. *_____________________________________________________________________________
  1025. * REVOKE table
  1026. *_____________________________________________________________________________
  1027. *
  1028.     REVOKE_TABLE   (TABLE_PRIVILEGE TABLE_PRIVILEGE2(zero)
  1029.                     on table(optional) TABLE_NAME TABLE_NAME2(zero)
  1030.                     FROM_FAR_AUTH
  1031.                    )
  1032.                    (all privilege(optional)
  1033.                     on table(optional) TABLE_NAME TABLE_NAME2(zero)
  1034.                     FROM_FAR_AUTH
  1035.                    )
  1036. *_____________________________________________________________________________
  1037. * REVOKE use
  1038. *_____________________________________________________________________________
  1039. *
  1040.     REVOKE_USE     (use of USE_OBJECT
  1041.                     FROM_AUTH
  1042.                    )
  1043. *_____________________________________________________________________________
  1044. * SELECT statement
  1045. *_____________________________________________________________________________
  1046. *
  1047.     SELECT_INTO    (SELECT_CLAUSE into HOST_VARIABLE HOST_VARIABLE2(zero)
  1048.                     SELECT_FROM
  1049.                     SELECT_WHERE
  1050.                     END
  1051.                    )
  1052. *_____________________________________________________________________________
  1053. * Set current packageset
  1054. *_____________________________________________________________________________
  1055. *
  1056.     SET            (set HOST_VARIABLE equals CONSTANT END)
  1057. *_____________________________________________________________________________
  1058. * Set current packageset
  1059. *_____________________________________________________________________________
  1060. *
  1061.     SET_CURRENT_PACKAGESET
  1062.                    (set current packageset user     END)
  1063.                    (set current packageset STRING   END)
  1064.                    (set current packageset HOST_VARIABLE END)
  1065. *_____________________________________________________________________________
  1066. * Set current SQL ID
  1067. *_____________________________________________________________________________
  1068. *
  1069.     SET_CURRENT_SQLID
  1070.                    (set current sqlid user     END)
  1071.                    (set current sqlid STRING   END)
  1072.                    (set current sqlid HOST_VARIABLE END)
  1073. *_____________________________________________________________________________
  1074. * Update statement
  1075. *_____________________________________________________________________________
  1076. *
  1077.     UPDATE         (update SELECT_TABLE
  1078.                     set SET_CLAUSE SET_CLAUSE2(zero)
  1079.                     WHERE_TYPE(optional)
  1080.                     END
  1081.                    )
  1082.     SET_CLAUSE     (COLUMN_NAME equals SELECT_EXPR)
  1083.     SET_CLAUSE2    (comma SET_CLAUSE)
  1084. *_____________________________________________________________________________
  1085. * Whenever
  1086. *_____________________________________________________________________________
  1087. *
  1088.     WHENEVER       (whenever WHENEVER_CONDITION WHENEVER_ACTION END)
  1089.     WHENEVER_CONDITION
  1090.                    (not found)
  1091.                    (sqlerror)
  1092.                    (sqlwarning)
  1093.     WHENEVER_ACTION(continue)
  1094.                    (goto HOST_LABEL)
  1095.                    (go to HOST_LABEL)
  1096.     HOST_LABEL     (VAR)
  1097.  
  1098. *_____________________________________________________________________________
  1099. * Strings and numbers
  1100. *_____________________________________________________________________________
  1101. *
  1102.     CONSTANT       (NUMBER)
  1103.                    (STRING)
  1104.     STRING         (STRINGS(repeat))
  1105.     STRINGS        (QUOTE1 STRINGC(zero) QUOTE2)
  1106.     STRINGC        (''''(not))
  1107.     QUOTE1         ('''')
  1108.     QUOTE2         ('''')
  1109.  
  1110.     NUMBER         (INTEGER               EXPONENT(optional))
  1111.                    (INTEGER  dot DECIMAL  EXPONENT(optional))
  1112.                    (         dot DECIMAL  EXPONENT(optional))
  1113.     INTEGER        (NUMERIC(repeat))
  1114.     DECIMAL        (INTEGER)
  1115.     EXPONENT       (Ee EPM(optional) INTEGER)
  1116.     Ee             ('Ee'(choice))
  1117.     EPM            ('+-'(choice))
  1118. *_____________________________________________________________________________
  1119. * Variables
  1120. *_____________________________________________________________________________
  1121. *
  1122.     VAR            (       ALPHA(secondary) ALPHA_NUMERICS(zero))
  1123.                    (double ALPHA(secondary) ALPHA_NUMERICS(zero) double)
  1124.  
  1125.     ALPHA_NUMERICS (ALPHA)
  1126.                    (NUMERIC)
  1127.                    (SPECIAL)
  1128.     ALPHA          ('abcdefghijklmnopqrstuvwxyz'(choice))
  1129.                    ('ABCDEFGHIJKLMNOPQRSTUVWXYZ'(choice))
  1130.     NUMERIC        ('0123456789'                (choice))
  1131.     SPECIAL        ('_@#$'                      (choice))
  1132. *_____________________________________________________________________________
  1133. * Terminal symbols
  1134. *_____________________________________________________________________________
  1135. *
  1136.     -              (' ')
  1137.     END            (semi)
  1138.     add            ('add'        (mixed))
  1139.     alias          ('alias'      (mixed))
  1140.     all            ('all'        (mixed))
  1141.     alter          ('alter'      (mixed))
  1142.     and            ('and'        (mixed))
  1143.     any            ('any'        (mixed))
  1144.     archive        ('archive'    (mixed))
  1145.     asc            ('asc'        (mixed))
  1146.     as             ('as'         (mixed))
  1147.     at             ('at'         (mixed))
  1148.     audit          ('audit'      (mixed))
  1149.     begin          ('begin'      (mixed))
  1150.     between        ('between'    (mixed))
  1151.     bind           ('bind'       (mixed))
  1152.     bindadd        ('bindadd'    (mixed))
  1153.     bindagent      ('bindagent'  (mixed))
  1154.     bit            ('bit'        (mixed))
  1155.     both           ('both'       (mixed))
  1156.     bp0            ('bp0'        (mixed))
  1157.     bp1            ('bp1'        (mixed))
  1158.     bp2            ('bp2'        (mixed))
  1159.     bp32k          ('bp32k'      (mixed))
  1160.     bsds           ('bsds'       (mixed))
  1161.     bufferpool     ('bufferpool' (mixed))
  1162.     by             ('by'         (mixed))
  1163.     capture        ('capture'    (mixed))
  1164.     cascade        ('cascade'    (mixed))
  1165.     changes        ('changes'    (mixed))
  1166.     char           ('char'       (mixed))
  1167.     character      ('character'  (mixed))
  1168.     check          ('check'      (mixed))
  1169.     close          ('close'      (mixed))
  1170.     closep         (')')
  1171.     cluster        ('cluster'    (mixed))
  1172.     collection     ('collection' (mixed))
  1173.     colon          (':')
  1174.     column         ('column'     (mixed))
  1175.     comma          (',')
  1176.     comment        ('comment'    (mixed))
  1177.     commit         ('commit'     (mixed))
  1178.     connect        ('connect'    (mixed))
  1179.     continue       ('continue'   (mixed))
  1180.     copy           ('copy'       (mixed))
  1181.     create         ('create'     (mixed))
  1182.     createalias    ('createalias'(mixed))
  1183.     createdba      ('createdba'  (mixed))
  1184.     createdbc      ('createdbc'  (mixed))
  1185.     createsg       ('createsg'   (mixed))
  1186.     createtab      ('createtab'  (mixed))
  1187.     createts       ('createts'   (mixed))
  1188.     current        ('current'    (mixed))
  1189.     cursor         ('cursor'     (mixed))
  1190.     data           ('data'       (mixed))
  1191.     database       ('database'   (mixed))
  1192.     date           ('date'       (mixed))
  1193.     dbadm          ('dbadm'      (mixed))
  1194.     dbctrl         ('dbctrl'     (mixed))
  1195.     dbmaint        ('dbmaint'    (mixed))
  1196.     dec            ('dec'        (mixed))
  1197.     decimal        ('decimal'    (mixed))
  1198.     declare        ('declare'    (mixed))
  1199.     default        ('default'    (mixed))
  1200.     delete         ('delete'     (mixed))
  1201.     desc           ('desc'       (mixed))
  1202.     describe       ('describe'   (mixed))
  1203.     descriptor     ('descriptor' (mixed))
  1204.     display        ('display'    (mixed))
  1205.     displaydb      ('displaydb'  (mixed))
  1206.     dot            ('.')
  1207.     double         ('"')
  1208.     drop           ('drop'       (mixed))
  1209.     dsetpass       ('dsetpass'   (mixed))
  1210.     editproc       ('editproc'   (mixed))
  1211.     end            ('end'        (mixed))
  1212.     equals         ('=')
  1213.     erase          ('erase'      (mixed))
  1214.     escape         ('escape'     (mixed))
  1215.     exclusive      ('exclusive'  (mixed))
  1216.     execute        ('execute'    (mixed))
  1217.     exists         ('exists'     (mixed))
  1218.     explain        ('explain'    (mixed))
  1219.     fetch          ('fetch'      (mixed))
  1220.     found          ('found'      (mixed))
  1221.     fieldproc      ('fieldproc'  (mixed))
  1222.     float          ('float'      (mixed))
  1223.     for            ('for'        (mixed))
  1224.     foreign        ('foreign'    (mixed))
  1225.     freepage       ('freepage'   (mixed))
  1226.     from           ('from'       (mixed))
  1227.     go             ('go'         (mixed))
  1228.     goto           ('goto'       (mixed))
  1229.     grant          ('grant'      (mixed))
  1230.     graphic        ('graphic'    (mixed))
  1231.     group          ('group'      (mixed))
  1232.     having         ('having'     (mixed))
  1233.     hold           ('hold'       (mixed))
  1234.     imagcopy       ('imagcopy'   (mixed))
  1235.     immediate      ('immediate'  (mixed))
  1236.     in             ('in'         (mixed))
  1237.     include        ('include'    (mixed))
  1238.     index          ('index'      (mixed))
  1239.     insert         ('insert'     (mixed))
  1240.     int            ('int'        (mixed))
  1241.     integer        ('integer'    (mixed))
  1242.     into           ('into'       (mixed))
  1243.     is             ('is'         (mixed))
  1244.     key            ('key'        (mixed))
  1245.     label          ('label'      (mixed))
  1246.     labels         ('labels'     (mixed))
  1247.     like           ('like'       (mixed))
  1248.     load           ('load'       (mixed))
  1249.     lock           ('lock'       (mixed))
  1250.     locations      ('locations'  (mixed))
  1251.     locksize       ('locksize'   (mixed))
  1252.     long           ('long'       (mixed))
  1253.     mixed          ('mixed'      (mixed))
  1254.     mode           ('mode'       (mixed))
  1255.     monitor1       ('monitor1'   (mixed))
  1256.     monitor2       ('monitor2'   (mixed))
  1257.     names          ('names'      (mixed))
  1258.     no             ('no'         (mixed))
  1259.     none           ('none'       (mixed))
  1260.     not            ('not'        (mixed))
  1261.     null           ('null'       (mixed))
  1262.     numparts       ('numparts'   (mixed))
  1263.     obid           ('obid'       (mixed))
  1264.     of             ('of'         (mixed))
  1265.     on             ('on'         (mixed))
  1266.     only           ('only'       (mixed))
  1267.     open           ('open'       (mixed))
  1268.     openp          ('(')
  1269.     option         ('option'     (mixed))
  1270.     optimize       ('optimize'   (mixed))
  1271.     order          ('order'      (mixed))
  1272.     owner          ('owner'      (mixed))
  1273.     packadm        ('packadm'    (mixed))
  1274.     package        ('package'    (mixed))
  1275.     packageset     ('packageset' (mixed))
  1276.     page           ('page'       (mixed))
  1277.     part           ('part'       (mixed))
  1278.     password       ('password'   (mixed))
  1279.     pctfree        ('pctfree'    (mixed))
  1280.     plan           ('plan'       (mixed))
  1281.     prepare        ('prepare'    (mixed))
  1282.     primary        ('primary'    (mixed))
  1283.     priqty         ('priqty'     (mixed))
  1284.     privilege      ('privilege'  (mixed))
  1285.     program        ('program'    (mixed))
  1286.     public         ('public'     (mixed))
  1287.     queryno        ('queryno'    (mixed))
  1288.     read           ('read'       (mixed))
  1289.     recover        ('recover'    (mixed))
  1290.     recoverdb      ('recoverdb'  (mixed))
  1291.     references     ('references' (mixed))
  1292.     remove         ('remove'     (mixed))
  1293.     reorg          ('reorg'      (mixed))
  1294.     repair         ('repair'     (mixed))
  1295.     reset          ('reset'      (mixed))
  1296.     restrict       ('restrict'   (mixed))
  1297.     revoke         ('revoke'     (mixed))
  1298.     rollback       ('rollback'   (mixed))
  1299.     roshare        ('roshare'    (mixed))
  1300.     row            ('row'        (mixed))
  1301.                    ('rows'       (mixed))
  1302.     run            ('run'        (mixed))
  1303.     sbcs           ('sbcs'       (mixed))
  1304.     secqty         ('secqty'     (mixed))
  1305.     section        ('section'    (mixed))
  1306.     segsize        ('segsize'    (mixed))
  1307.     select         ('select'     (mixed))
  1308.     semi           (';')
  1309.     server         ('server'      (mixed))
  1310.     set            ('set'        (mixed))
  1311.     share          ('share'      (mixed))
  1312. *   shared         ('shared'     (mixed))
  1313. *   single         ('''')
  1314.     smallint       ('smallint'   (mixed))
  1315.     sqlca          ('sqlca'      (mixed))
  1316.     sqlda          ('sqlda'      (mixed))
  1317.     sqlerror       ('sqlerror'   (mixed))
  1318.     sqlid          ('sqlid'      (mixed))
  1319.     sqlwarning     ('sqlwarning' (mixed))
  1320.     star           ('star'       (mixed))
  1321.     startdb        ('startdb'    (mixed))
  1322.     statement      ('statement'  (mixed))
  1323.     stats          ('stats'      (mixed))
  1324.     stogroup       ('stogroup'   (mixed))
  1325.     stopall        ('stopall'    (mixed))
  1326.     stopdb         ('stopdb'     (mixed))
  1327.     stospace       ('stospace'   (mixed))
  1328.     subpages       ('subpages'   (mixed))
  1329.     synonym        ('synonym'    (mixed))
  1330.     sysadm         ('sysadm'     (mixed))
  1331.     sysctrl        ('sysctrl'    (mixed))
  1332.     sysopr         ('sysopr'     (mixed))
  1333.     table          ('table'      (mixed))
  1334.     tablespace     ('tablespace' (mixed))
  1335.     time           ('time'       (mixed))
  1336.     timestamp      ('timestamp'  (mixed))
  1337.     timezone       ('timezone'    (mixed))
  1338.     to             ('to'         (mixed))
  1339.     trace          ('trace'      (mixed))
  1340.     union          ('union'      (mixed))
  1341.     unique         ('unique'     (mixed))
  1342.     update         ('update'     (mixed))
  1343.     use            ('use'        (mixed))
  1344.     user           ('user'       (mixed))
  1345.     using          ('using'      (mixed))
  1346.     validproc      ('validproc'  (mixed))
  1347.     values         ('values'     (mixed))
  1348.     varchar        ('varchar'    (mixed))
  1349.     vargraphic     ('vargraphic' (mixed))
  1350.     vcat           ('vcat'       (mixed))
  1351.     version        ('version'    (mixed))
  1352.     view           ('view'       (mixed))
  1353.     volumes        ('volumes'    (mixed))
  1354.     whenever       ('whenever'   (mixed))
  1355.     where          ('where'      (mixed))
  1356.     with           ('with'       (mixed))
  1357.     work           ('work'       (mixed))
  1358.     yes            ('yes'        (mixed))
  1359.    )
  1360.   ignore   (- comma dot colon double)
  1361.   string   (- VAR INTEGER STRING)
  1362.  )
  1363.