<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE appendix PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
<appendix id="grammar">
  <title>BNF for SQL Grammar</title>
<section>
<title>TOKENS</title>
<informaltable frame="none">
<tgroup cols="1">
<colspec colname="c1" colwidth="100*"/>
<tbody>
<row><entry><para>
&lt;DEFAULT&gt; SKIP : {
" "
| "\t"
| "\n"
| "\r"
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; MORE : {
"/*" : IN_MULTI_LINE_COMMENT
}

</para></entry></row>
<row><entry><para>
&lt;IN_MULTI_LINE_COMMENT&gt; MORE : {
"/*" : {
}

</para></entry></row>
<row><entry><para>
&lt;IN_MULTI_LINE_COMMENT&gt; SPECIAL : {
"*/" : {
}

</para></entry></row>
<row><entry><para>
&lt;IN_MULTI_LINE_COMMENT&gt; MORE : {
&lt;~[]&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;STRING: "string"&gt;
| &lt;VARCHAR: "varchar"&gt;
| &lt;BOOLEAN: "boolean"&gt;
| &lt;BYTE: "byte"&gt;
| &lt;TINYINT: "tinyint"&gt;
| &lt;SHORT: "short"&gt;
| &lt;SMALLINT: "smallint"&gt;
| &lt;CHAR: "char"&gt;
| &lt;INTEGER: "integer"&gt;
| &lt;LONG: "long"&gt;
| &lt;BIGINT: "bigint"&gt;
| &lt;BIGINTEGER: "biginteger"&gt;
| &lt;FLOAT: "float"&gt;
| &lt;REAL: "real"&gt;
| &lt;DOUBLE: "double"&gt;
| &lt;BIGDECIMAL: "bigdecimal"&gt;
| &lt;DECIMAL: "decimal"&gt;
| &lt;DATE: "date"&gt;
| &lt;TIME: "time"&gt;
| &lt;TIMESTAMP: "timestamp"&gt;
| &lt;OBJECT: "object"&gt;
| &lt;BLOB: "blob"&gt;
| &lt;CLOB: "clob"&gt;
| &lt;XML: "xml"&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;CAST: "cast"&gt;
| &lt;CONVERT: "convert"&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;ADD: "add"&gt;
| &lt;ALL: "all"&gt;
| &lt;ALTER: "alter"&gt;
| &lt;AND: "and"&gt;
| &lt;ANY: "any"&gt;
| &lt;ARRAY: "array"&gt;
| &lt;ARRAY_AGG: "array_agg"&gt;
| &lt;AS: "as"&gt;
| &lt;ASC: "asc"&gt;
| &lt;ATOMIC: "atomic"&gt;
| &lt;AUTORIZATION: "authorization"&gt;
| &lt;BEGIN: "begin"&gt;
| &lt;BETWEEN: "between"&gt;
| &lt;BINARY: "binary"&gt;
| &lt;BOTH: "both"&gt;
| &lt;BREAK: "break"&gt;
| &lt;BY: "by"&gt;
| &lt;CALL: "call"&gt;
| &lt;CALLED: "called"&gt;
| &lt;CASCADED: "cascaded"&gt;
| &lt;CASE: "case"&gt;
| &lt;CHARACTER: "character"&gt;
| &lt;CHECK: "check"&gt;
| &lt;CLOSE: "close"&gt;
| &lt;COLLATE: "collate"&gt;
| &lt;COLUMN: "column"&gt;
| &lt;COMMIT: "commit"&gt;
| &lt;CONNECT: "connect"&gt;
| &lt;CONSTRAINT: "constraint"&gt;
| &lt;CONTINUE: "continue"&gt;
| &lt;CORRESPONDING: "corresponding"&gt;
| &lt;CURRENT_DATE: "current_date"&gt;
| &lt;CURRENT_TIME: "current_time"&gt;
| &lt;CURRENT_TIMESTAMP: "current_timestamp"&gt;
| &lt;CURRENT_USER: "current_user"&gt;
| &lt;CREATE: "create"&gt;
| &lt;CRITERIA: "criteria"&gt;
| &lt;CROSS: "cross"&gt;
| &lt;CURSOR: "cursor"&gt;
| &lt;DAY: "day"&gt;
| &lt;DEALLOCATE: "deallocate"&gt;
| &lt;DEFAULT_KEYWORD: "default"&gt;
| &lt;DECLARE: "declare"&gt;
| &lt;DELETE: "delete"&gt;
| &lt;DESC: "desc"&gt;
| &lt;DESCRIBE: "describe"&gt;
| &lt;DETERMINISTIC: "deterministic"&gt;
| &lt;DISCONNECT: "disconnect"&gt;
| &lt;DISTINCT: "distinct"&gt;
| &lt;DROP: "drop"&gt;
| &lt;EACH: "each"&gt;
| &lt;ELSE: "else"&gt;
| &lt;END: "end"&gt;
| &lt;ERROR: "error"&gt;
| &lt;ESCAPE: "escape"&gt;
| &lt;EXCEPT: "except"&gt;
| &lt;EXEC: "exec"&gt;
| &lt;EXECUTE: "execute"&gt;
| &lt;EXTERNAL: "external"&gt;
| &lt;EXISTS: "exists"&gt;
| &lt;FALSE: "false"&gt;
| &lt;FETCH: "fetch"&gt;
| &lt;FILTER: "filter"&gt;
| &lt;FOR: "for"&gt;
| &lt;FORIEGN: "foriegn"&gt;
| &lt;FROM: "from"&gt;
| &lt;FULL: "full"&gt;
| &lt;FUNCTION: "function"&gt;
| &lt;GET: "get"&gt;
| &lt;GLOBAL: "global"&gt;
| &lt;GRANT: "grant"&gt;
| &lt;GROUP: "group"&gt;
| &lt;HAS: "has"&gt;
| &lt;HAVING: "having"&gt;
| &lt;HOLD: "hold"&gt;
| &lt;HOUR: "hour"&gt;
| &lt;IF: "if"&gt;
| &lt;IDENTITY: "identity"&gt;
| &lt;IMMEDIATE: "immediate"&gt;
| &lt;IN: "in"&gt;
| &lt;INDICATOR: "indicator"&gt;
| &lt;INNER: "inner"&gt;
| &lt;INPUT: "input"&gt;
| &lt;INOUT: "inout"&gt;
| &lt;INSENSITIVE: "insensitive"&gt;
| &lt;INSERT: "insert"&gt;
| &lt;INTERSECT: "intersect"&gt;
| &lt;INTERVAL: "interval"&gt;
| &lt;INTO: "into"&gt;
| &lt;IS: "is"&gt;
| &lt;ISOLATION: "isolation"&gt;
| &lt;JOIN: "join"&gt;
| &lt;LEFT: "left"&gt;
| &lt;LANGUAGE: "language"&gt;
| &lt;LARGE: "large"&gt;
| &lt;LEADING: "leading"&gt;
| &lt;LEAVE: "leave"&gt;
| &lt;LIKE: "like"&gt;
| &lt;LIKE_REGEX: "like_regex"&gt;
| &lt;LIMIT: "limit"&gt;
| &lt;LOCAL: "local"&gt;
| &lt;LOOP: "loop"&gt;
| &lt;MAKEDEP: "makedep"&gt;
| &lt;MAKENOTDEP: "makenotdep"&gt;
| &lt;MATCH: "match"&gt;
| &lt;MERGE: "merge"&gt;
| &lt;METHOD: "method"&gt;
| &lt;MINUTE: "minute"&gt;
| &lt;MODIFIES: "modifies"&gt;
| &lt;MODULE: "module"&gt;
| &lt;MONTH: "month"&gt;
| &lt;NATURAL: "natural"&gt;
| &lt;NEW: "new"&gt;
| &lt;NOCACHE: "nocache"&gt;
| &lt;NO: "no"&gt;
| &lt;NONE: "none"&gt;
| &lt;NOT: "not"&gt;
| &lt;NULL: "null"&gt;
| &lt;OF: "of"&gt;
| &lt;OFFSET: "offset"&gt;
| &lt;OLD: "old"&gt;
| &lt;ON: "on"&gt;
| &lt;ONLY: "only"&gt;
| &lt;OPEN: "open"&gt;
| &lt;OPTION: "option"&gt;
| &lt;OR: "or"&gt;
| &lt;ORDER: "order"&gt;
| &lt;OUTER: "outer"&gt;
| &lt;OUTPUT: "output"&gt;
| &lt;OVER: "over"&gt;
| &lt;OVERLAPS: "OVERLAPS"&gt;
| &lt;PARAMETER: "parameter"&gt;
| &lt;PARTITION: "partition"&gt;
| &lt;PRECISION: "precision"&gt;
| &lt;PREPARE: "prepare"&gt;
| &lt;PRIMARY: "primary"&gt;
| &lt;PROCEDURE: "procedure"&gt;
| &lt;RANGE: "range"&gt;
| &lt;READS: "reads"&gt;
| &lt;RECURSIVE: "recursive"&gt;
| &lt;REFERENCES: "REFERENCES"&gt;
| &lt;REFERENCING: "REFERENCING"&gt;
| &lt;RETURN: "return"&gt;
| &lt;RETURNS: "returns"&gt;
| &lt;REVOKE: "REVOKE"&gt;
| &lt;RIGHT: "right"&gt;
| &lt;ROLLBACK: "ROLLBACK"&gt;
| &lt;ROLLUP: "ROLLUP"&gt;
| &lt;ROW: "row"&gt;
| &lt;ROWS: "rows"&gt;
| &lt;SAVEPOINT: "savepoint"&gt;
| &lt;SCROLL: "scroll"&gt;
| &lt;SEARCH: "search"&gt;
| &lt;SECOND: "second"&gt;
| &lt;SELECT: "select"&gt;
| &lt;SENSITIVE: "sensitive"&gt;
| &lt;SESSION_USER: "session_user"&gt;
| &lt;SET: "set"&gt;
| &lt;SIMILAR: "similar"&gt;
| &lt;SPECIFIC: "specific"&gt;
| &lt;SOME: "some"&gt;
| &lt;SQL: "sql"&gt;
| &lt;SQLEXCEPTION: "sqlexception"&gt;
| &lt;SQLSTATE: "sqlstate"&gt;
| &lt;SQLWARNING: "sqlwarning"&gt;
| &lt;START: "start"&gt;
| &lt;STATIC: "static"&gt;
| &lt;SYSTEM: "system"&gt;
| &lt;SYSTEM_USER: "system_user"&gt;
| &lt;TABLE: "table"&gt;
| &lt;TEMPORARY: "temporary"&gt;
| &lt;THEN: "then"&gt;
| &lt;TIMEZONE_HOUR: "timezone_hour"&gt;
| &lt;TIMEZONE_MINUTE: "timezone_minute"&gt;
| &lt;TO: "to"&gt;
| &lt;TRAILING: "trailing"&gt;
| &lt;TRANSLATE: "translate"&gt;
| &lt;TRIGGER: "trigger"&gt;
| &lt;TRUE: "true"&gt;
| &lt;UNION: "union"&gt;
| &lt;UNIQUE: "unique"&gt;
| &lt;UNKNOWN: "unknown"&gt;
| &lt;USER: "user"&gt;
| &lt;UPDATE: "update"&gt;
| &lt;USING: "using"&gt;
| &lt;VALUE: "value"&gt;
| &lt;VALUES: "values"&gt;
| &lt;VIRTUAL: "virtual"&gt;
| &lt;WHEN: "when"&gt;
| &lt;WHENEVER: "whenever"&gt;
| &lt;WHERE: "where"&gt;
| &lt;WITH: "with"&gt;
| &lt;WHILE: "while"&gt;
| &lt;WINDOW: "window"&gt;
| &lt;WITHIN: "within"&gt;
| &lt;WITHOUT: "without"&gt;
| &lt;YEAR: "year"&gt;
| &lt;ALLOCATE: "allocate"&gt;
| &lt;ARE: "are"&gt;
| &lt;ASENSITIVE: "asensitive"&gt;
| &lt;ASYMETRIC: "asymetric"&gt;
| &lt;CYCLE: "cycle"&gt;
| &lt;DEC: "dec"&gt;
| &lt;DEREF: "deref"&gt;
| &lt;DYNAMIC: "dynamic"&gt;
| &lt;ELEMENT: "element"&gt;
| &lt;FREE: "free"&gt;
| &lt;INT: "int"&gt;
| &lt;LATERAL: "lateral"&gt;
| &lt;LOCALTIME: "localtime"&gt;
| &lt;LOCALTIMESTAMP: "localtimestamp"&gt;
| &lt;MEMBER: "member"&gt;
| &lt;MULTISET: "multiset"&gt;
| &lt;NATIONAL: "national"&gt;
| &lt;NCHAR: "nchar"&gt;
| &lt;NCLOB: "nclob"&gt;
| &lt;NUMERIC: "numeric"&gt;
| &lt;RELEASE: "release"&gt;
| &lt;SPECIFICTYPE: "specifictype"&gt;
| &lt;SYMETRIC: "symetric"&gt;
| &lt;SUBMULTILIST: "submultilist"&gt;
| &lt;TRANSLATION: "translation"&gt;
| &lt;TREAT: "treat"&gt;
| &lt;VARYING: "varying"&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;XMLAGG: "xmlagg"&gt;
| &lt;XMLATTRIBUTES: "xmlattributes"&gt;
| &lt;XMLBINARY: "xmlbinary"&gt;
| &lt;XMLCAST: "xmlcast"&gt;
| &lt;XMLCONCAT: "xmlconcat"&gt;
| &lt;XMLCOMMENT: "xmlcomment"&gt;
| &lt;XMLDOCUMENT: "xmldocument"&gt;
| &lt;XMLELEMENT: "xmlelement"&gt;
| &lt;XMLEXISTS: "xmlexists"&gt;
| &lt;XMLFOREST: "xmlforest"&gt;
| &lt;XMLITERATE: "xmliterate"&gt;
| &lt;XMLNAMESPACES: "xmlnamespaces"&gt;
| &lt;XMLPARSE: "xmlparse"&gt;
| &lt;XMLPI: "xmlpi"&gt;
| &lt;XMLQUERY: "xmlquery"&gt;
| &lt;XMLSERIALIZE: "xmlserialize"&gt;
| &lt;XMLTABLE: "xmltable"&gt;
| &lt;XMLTEXT: "xmltext"&gt;
| &lt;XMLVALIDATE: "xmlvalidate"&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;DATALINK: "datalink"&gt;
| &lt;DLNEWCOPY: "dlnewcopy"&gt;
| &lt;DLPREVIOUSCOPY: "dlpreviouscopy"&gt;
| &lt;DLURLCOMPLETE: "dlurlcomplete"&gt;
| &lt;DLURLCOMPLETEWRITE: "dlurlcompletewrite"&gt;
| &lt;DLURLCOMPLETEONLY: "dlurlcompleteonly"&gt;
| &lt;DLURLPATH: "dlurlpath"&gt;
| &lt;DLURLPATHWRITE: "dlurlpathwrite"&gt;
| &lt;DLURLPATHONLY: "dlurlpathonly"&gt;
| &lt;DLURLSCHEME: "dlurlscheme"&gt;
| &lt;DLURLSERVER: "dlurlserver"&gt;
| &lt;DLVALUE: "dlvalue"&gt;
| &lt;IMPORT: "import"&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;ALL_IN_GROUP: &lt;ID&gt; &lt;PERIOD&gt; &lt;STAR&gt;&gt;
| &lt;ID: &lt;QUOTED_ID&gt; (&lt;PERIOD&gt; &lt;QUOTED_ID&gt;)*&gt;
| &lt;#QUOTED_ID: &lt;ID_PART&gt; | "\"" ("\"\"" | ~["\""])+ "\""&gt;
| &lt;#ID_PART: ("@" | "#" | &lt;LETTER&gt;) (&lt;LETTER&gt; | "_" | &lt;DIGIT&gt;)*&gt;
| &lt;DATETYPE: "{" "d"&gt;
| &lt;TIMETYPE: "{" "t"&gt;
| &lt;TIMESTAMPTYPE: "{" "ts"&gt;
| &lt;BOOLEANTYPE: "{" "b"&gt;
| &lt;POS_REF: ["$"] (&lt;DIGIT&gt;)+&gt;
| &lt;INTEGERVAL: (&lt;MINUS&gt;)? (&lt;DIGIT&gt;)+&gt;
| &lt;DECIMALVAL: (&lt;MINUS&gt;)? (&lt;DIGIT&gt;)* &lt;PERIOD&gt; (&lt;DIGIT&gt;)+&gt;
| &lt;FLOATVAL: (&lt;MINUS&gt;)? &lt;DIGIT&gt; &lt;PERIOD&gt; (&lt;DIGIT&gt;)+ ["e","E"] (["+","-"])? (&lt;DIGIT&gt;)+&gt;
| &lt;STRINGVAL: ("N" | "E")? "\'" ("\'\'" | ~["\'"])* "\'"&gt;
| &lt;#LETTER: ["a"-"z","A"-"Z"] | ["\u0153"-"\ufffd"]&gt;
| &lt;#DIGIT: ["0"-"9"]&gt;
}

</para></entry></row>
<row><entry><para>
&lt;DEFAULT&gt; TOKEN : {
&lt;COMMA: ","&gt;
| &lt;PERIOD: "."&gt;
| &lt;LPAREN: "("&gt;
| &lt;RPAREN: ")"&gt;
| &lt;LBRACE: "{"&gt;
| &lt;RBRACE: "}"&gt;
| &lt;LSBRACE: "["&gt;
| &lt;RSBRACE: "]"&gt;
| &lt;EQ: "="&gt;
| &lt;NE: "&lt;&gt;"&gt;
| &lt;NE2: "!="&gt;
| &lt;LT: "&lt;"&gt;
| &lt;LE: "&lt;="&gt;
| &lt;GT: "&gt;"&gt;
| &lt;GE: "&gt;="&gt;
| &lt;STAR: "*"&gt;
| &lt;SLASH: "/"&gt;
| &lt;PLUS: "+"&gt;
| &lt;MINUS: "-"&gt;
| &lt;QMARK: "?"&gt;
| &lt;DOLLAR: "$"&gt;
| &lt;SEMICOLON: ";"&gt;
| &lt;COLON: ":"&gt;
| &lt;CONCAT_OP: "||"&gt;
}

</para></entry></row>
</tbody>
</tgroup>
</informaltable>
</section>
<section>
<title>NON-TERMINALS</title>
<informaltable frame="none">
<tgroup cols="2">
<colspec colname="c1" colwidth=".33*"/>
<colspec colname="c2" colwidth="*"/>
<tbody>
<row>
<entry align="right" valign="top"><para><anchor id="prod1" xreflabel="stringVal"/>stringVal</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;STRINGVAL&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod2" xreflabel="id"/>id</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;ID&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod3" xreflabel="command"/>command</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod4">createProcedure</link> | <link linkend="prod5">userCommand</link> | <link linkend="prod6">callableStatement</link> ) ( &lt;SEMICOLON&gt; )? &lt;EOF&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod7" xreflabel="designerCommand"/>designerCommand</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod8">updateProcedure</link> | <link linkend="prod5">userCommand</link> ) ( &lt;SEMICOLON&gt; )? &lt;EOF&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod8" xreflabel="updateProcedure"/>updateProcedure</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod4">createProcedure</link> | <link linkend="prod9">forEachRowTriggerAction</link> ) &lt;EOF&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod10" xreflabel="createTrigger"/>createTrigger</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;CREATE&gt; &lt;TRIGGER&gt; &lt;ON&gt; <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> &lt;OF&gt; ( &lt;INSERT&gt; | &lt;UPDATE&gt; | &lt;DELETE&gt; ) &lt;AS&gt; <link linkend="prod9">forEachRowTriggerAction</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod12" xreflabel="alter"/>alter</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ALTER&gt; ( ( <link linkend="prod11">nonReserved</link> <link linkend="prod2">id</link> &lt;AS&gt; <link linkend="prod13">queryExpression</link> ) | ( &lt;PROCEDURE&gt; <link linkend="prod2">id</link> &lt;AS&gt; <link linkend="prod14">statement</link> ) | ( &lt;TRIGGER&gt; &lt;ON&gt; <link linkend="prod2">id</link> <link linkend="prod11">nonReserved</link> &lt;OF&gt; ( &lt;INSERT&gt; | &lt;UPDATE&gt; | &lt;DELETE&gt; ) ( ( &lt;AS&gt; <link linkend="prod9">forEachRowTriggerAction</link> ) | <link linkend="prod11">nonReserved</link> ) ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod9" xreflabel="forEachRowTriggerAction"/>forEachRowTriggerAction</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;FOR&gt; &lt;EACH&gt; &lt;ROW&gt; ( ( &lt;BEGIN&gt; ( &lt;ATOMIC&gt; )? ( <link linkend="prod14">statement</link> )* &lt;END&gt; ) | <link linkend="prod14">statement</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod5" xreflabel="userCommand"/>userCommand</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod13">queryExpression</link> | <link linkend="prod15">storedProcedure</link> | <link linkend="prod16">insert</link> | <link linkend="prod17">update</link> | <link linkend="prod18">delete</link> | <link linkend="prod19">dropTable</link> | <link linkend="prod20">createTempTable</link> | <link linkend="prod12">alter</link> | <link linkend="prod10">createTrigger</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod19" xreflabel="dropTable"/>dropTable</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;DROP&gt; &lt;TABLE&gt; <link linkend="prod2">id</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod20" xreflabel="createTempTable"/>createTempTable</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;CREATE&gt; &lt;LOCAL&gt; &lt;TEMPORARY&gt; &lt;TABLE&gt; <link linkend="prod2">id</link> &lt;LPAREN&gt; <link linkend="prod21">tableElement</link> ( &lt;COMMA&gt; <link linkend="prod21">tableElement</link> )* ( &lt;COMMA&gt; &lt;PRIMARY&gt; <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; <link linkend="prod2">id</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> )* &lt;RPAREN&gt; )? &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod21" xreflabel="tableElement"/>tableElement</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> ( <link linkend="prod22">dataTypeString</link> | <link linkend="prod11">nonReserved</link> ) ( &lt;NOT&gt; &lt;NULL&gt; )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod23" xreflabel="errorStatement"/>errorStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ERROR&gt; <link linkend="prod24">expression</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod14" xreflabel="statement"/>statement</para></entry>
<entry align="left" valign="top"><para>::= 
( ( ( <link linkend="prod2">id</link> &lt;COLON&gt; )? ( <link linkend="prod25">loopStatement</link> | <link linkend="prod26">whileStatement</link> | <link linkend="prod27">compoundStatement</link> ) ) | ( <link linkend="prod28">ifStatement</link> | <link linkend="prod29">delimitedStatement</link> ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod29" xreflabel="delimitedStatement"/>delimitedStatement</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod30">assignStatement</link> | <link linkend="prod31">sqlStatement</link> | <link linkend="prod23">errorStatement</link> | <link linkend="prod32">declareStatement</link> | <link linkend="prod33">branchingStatement</link> ) &lt;SEMICOLON&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod27" xreflabel="compoundStatement"/>compoundStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;BEGIN&gt; ( ( &lt;NOT&gt; )? &lt;ATOMIC&gt; )? ( <link linkend="prod14">statement</link> )* &lt;END&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod33" xreflabel="branchingStatement"/>branchingStatement</para></entry>
<entry align="left" valign="top"><para>::= 
( ( ( &lt;BREAK&gt; | &lt;CONTINUE&gt; ) ( <link linkend="prod2">id</link> )? ) | ( &lt;LEAVE&gt; <link linkend="prod2">id</link> ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod26" xreflabel="whileStatement"/>whileStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;WHILE&gt; &lt;LPAREN&gt; <link linkend="prod34">criteria</link> &lt;RPAREN&gt; <link linkend="prod14">statement</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod25" xreflabel="loopStatement"/>loopStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;LOOP&gt; &lt;ON&gt; &lt;LPAREN&gt; <link linkend="prod13">queryExpression</link> &lt;RPAREN&gt; &lt;AS&gt; <link linkend="prod2">id</link> <link linkend="prod14">statement</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod28" xreflabel="ifStatement"/>ifStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;IF&gt; &lt;LPAREN&gt; <link linkend="prod34">criteria</link> &lt;RPAREN&gt; <link linkend="prod14">statement</link> ( &lt;ELSE&gt; <link linkend="prod14">statement</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod32" xreflabel="declareStatement"/>declareStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;DECLARE&gt; <link linkend="prod35">dataType</link> <link linkend="prod2">id</link> ( ( <link linkend="prod11">nonReserved</link> | &lt;EQ&gt; ) <link linkend="prod36">assignStatementOperand</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod30" xreflabel="assignStatement"/>assignStatement</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | &lt;EQ&gt; ) <link linkend="prod36">assignStatementOperand</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod36" xreflabel="assignStatementOperand"/>assignStatementOperand</para></entry>
<entry align="left" valign="top"><para>::= 
( ( <link linkend="prod16">insert</link> ) | <link linkend="prod17">update</link> | <link linkend="prod18">delete</link> | ( <link linkend="prod24">expression</link> ) | <link linkend="prod13">queryExpression</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod31" xreflabel="sqlStatement"/>sqlStatement</para></entry>
<entry align="left" valign="top"><para>::= 
( ( <link linkend="prod5">userCommand</link> ) | <link linkend="prod37">dynamicCommand</link> | ( <link linkend="prod2">id</link> ( <link linkend="prod11">nonReserved</link> | &lt;EQ&gt; ) <link linkend="prod15">storedProcedure</link> ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod4" xreflabel="createProcedure"/>createProcedure</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;CREATE&gt; ( &lt;VIRTUAL&gt; )? &lt;PROCEDURE&gt; <link linkend="prod14">statement</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod37" xreflabel="dynamicCommand"/>dynamicCommand</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;EXECUTE&gt; | &lt;EXEC&gt; ) ( ( &lt;STRING&gt; | &lt;IMMEDIATE&gt; ) )? <link linkend="prod24">expression</link> ( &lt;AS&gt; <link linkend="prod38">createElementsWithTypes</link> ( &lt;INTO&gt; <link linkend="prod2">id</link> )? )? ( &lt;USING&gt; <link linkend="prod39">setClauseList</link> )? ( &lt;UPDATE&gt; ( ( &lt;INTEGERVAL&gt; ) | ( &lt;STAR&gt; ) ) )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod39" xreflabel="setClauseList"/>setClauseList</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> &lt;EQ&gt; ( &lt;COMMA&gt; <link linkend="prod2">id</link> &lt;EQ&gt; )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod38" xreflabel="createElementsWithTypes"/>createElementsWithTypes</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> <link linkend="prod22">dataTypeString</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> <link linkend="prod22">dataTypeString</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod6" xreflabel="callableStatement"/>callableStatement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;LBRACE&gt; ( &lt;QMARK&gt; &lt;EQ&gt; )? &lt;CALL&gt; <link linkend="prod2">id</link> ( &lt;LPAREN&gt; ( <link linkend="prod40">executeUnnamedParams</link> ) &lt;RPAREN&gt; )? &lt;RBRACE&gt; ( <link linkend="prod41">option</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod15" xreflabel="storedProcedure"/>storedProcedure</para></entry>
<entry align="left" valign="top"><para>::= 
( ( &lt;EXEC&gt; | &lt;EXECUTE&gt; | &lt;CALL&gt; ) <link linkend="prod2">id</link> &lt;LPAREN&gt; ( <link linkend="prod42">executeNamedParams</link> | <link linkend="prod40">executeUnnamedParams</link> ) &lt;RPAREN&gt; ) ( <link linkend="prod41">option</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod40" xreflabel="executeUnnamedParams"/>executeUnnamedParams</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod24">expression</link> ( &lt;COMMA&gt; <link linkend="prod24">expression</link> )* )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod42" xreflabel="executeNamedParams"/>executeNamedParams</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod2">id</link> &lt;EQ&gt; ( &lt;GT&gt; )? <link linkend="prod24">expression</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> &lt;EQ&gt; ( &lt;GT&gt; )? <link linkend="prod24">expression</link> )* )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod16" xreflabel="insert"/>insert</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;INSERT&gt; &lt;INTO&gt; <link linkend="prod2">id</link> ( <link linkend="prod43">columnList</link> )? ( ( &lt;VALUES&gt; &lt;LPAREN&gt; <link linkend="prod44">expressionList</link> &lt;RPAREN&gt; ) | ( <link linkend="prod13">queryExpression</link> ) ) ( <link linkend="prod41">option</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod43" xreflabel="columnList"/>columnList</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;LPAREN&gt; <link linkend="prod2">id</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> )* &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod44" xreflabel="expressionList"/>expressionList</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod24">expression</link> ( &lt;COMMA&gt; <link linkend="prod24">expression</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod17" xreflabel="update"/>update</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;UPDATE&gt; <link linkend="prod2">id</link> &lt;SET&gt; <link linkend="prod39">setClauseList</link> ( <link linkend="prod45">where</link> )? ( <link linkend="prod41">option</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod18" xreflabel="delete"/>delete</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;DELETE&gt; &lt;FROM&gt; <link linkend="prod2">id</link> ( <link linkend="prod45">where</link> )? ( <link linkend="prod41">option</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod13" xreflabel="queryExpression"/>queryExpression</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;WITH&gt; <link linkend="prod46">withListElement</link> ( &lt;COMMA&gt; <link linkend="prod46">withListElement</link> )* )? <link linkend="prod47">queryExpressionBody</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod46" xreflabel="withListElement"/>withListElement</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> ( <link linkend="prod43">columnList</link> )? &lt;AS&gt; &lt;LPAREN&gt; <link linkend="prod13">queryExpression</link> &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod47" xreflabel="queryExpressionBody"/>queryExpressionBody</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod48">queryTerm</link> ( ( &lt;UNION&gt; | &lt;EXCEPT&gt; ) ( &lt;ALL&gt; | &lt;DISTINCT&gt; )? <link linkend="prod48">queryTerm</link> )* ( <link linkend="prod49">orderby</link> )? ( <link linkend="prod50">limit</link> )? ( <link linkend="prod41">option</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod48" xreflabel="queryTerm"/>queryTerm</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod51">queryPrimary</link> ( &lt;INTERSECT&gt; ( &lt;ALL&gt; | &lt;DISTINCT&gt; )? <link linkend="prod51">queryPrimary</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod51" xreflabel="queryPrimary"/>queryPrimary</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod52">query</link> | ( &lt;TABLE&gt; <link linkend="prod2">id</link> ) | ( &lt;LPAREN&gt; <link linkend="prod47">queryExpressionBody</link> &lt;RPAREN&gt; ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod52" xreflabel="query"/>query</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod53">select</link> ( <link linkend="prod54">into</link> )? ( <link linkend="prod55">from</link> ( <link linkend="prod45">where</link> )? ( <link linkend="prod56">groupBy</link> )? ( <link linkend="prod57">having</link> )? )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod54" xreflabel="into"/>into</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;INTO&gt; ( <link linkend="prod2">id</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod53" xreflabel="select"/>select</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;SELECT&gt; ( &lt;ALL&gt; | ( &lt;DISTINCT&gt; ) )? ( &lt;STAR&gt; | ( <link linkend="prod58">selectSymbol</link> ( &lt;COMMA&gt; <link linkend="prod58">selectSymbol</link> )* ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod58" xreflabel="selectSymbol"/>selectSymbol</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod59">selectExpression</link> | <link linkend="prod60">allInGroupSymbol</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod59" xreflabel="selectExpression"/>selectExpression</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod24">expression</link> ( ( &lt;AS&gt; )? <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod61" xreflabel="derivedColumn"/>derivedColumn</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod24">expression</link> ( &lt;AS&gt; <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod60" xreflabel="allInGroupSymbol"/>allInGroupSymbol</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ALL_IN_GROUP&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod62" xreflabel="orderedAgg"/>orderedAgg</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;XMLAGG&gt; | &lt;ARRAY_AGG&gt; ) &lt;LPAREN&gt; <link linkend="prod24">expression</link> ( <link linkend="prod49">orderby</link> )? &lt;RPAREN&gt; <link linkend="prod63">filterClause</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod64" xreflabel="textAgg"/>textAgg</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; &lt;FOR&gt; <link linkend="prod61">derivedColumn</link> ( &lt;COMMA&gt; <link linkend="prod61">derivedColumn</link> )* ( &lt;ID&gt; <link linkend="prod65">charVal</link> )? ( ( &lt;ID&gt; <link linkend="prod65">charVal</link> ) )? ( &lt;ID&gt; )? ( ( &lt;ID&gt; <link linkend="prod2">id</link> ) )? ( <link linkend="prod49">orderby</link> )? &lt;RPAREN&gt; <link linkend="prod63">filterClause</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod66" xreflabel="aggregateSymbol"/>aggregateSymbol</para></entry>
<entry align="left" valign="top"><para>::= 
( ( ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; &lt;STAR&gt; &lt;RPAREN&gt; ) | ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; &lt;RPAREN&gt; ) | ( ( <link linkend="prod11">nonReserved</link> | &lt;ANY&gt; | &lt;SOME&gt; ) &lt;LPAREN&gt; ( &lt;DISTINCT&gt; | &lt;ALL&gt; )? <link linkend="prod24">expression</link> &lt;RPAREN&gt; ) ) <link linkend="prod63">filterClause</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod63" xreflabel="filterClause"/>filterClause</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;FILTER&gt; &lt;LPAREN&gt; &lt;WHERE&gt; <link linkend="prod67">booleanPrimary</link> &lt;RPAREN&gt; )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod55" xreflabel="from"/>from</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;FROM&gt; ( <link linkend="prod68">tableReference</link> ( &lt;COMMA&gt; <link linkend="prod68">tableReference</link> )* )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod68" xreflabel="tableReference"/>tableReference</para></entry>
<entry align="left" valign="top"><para>::= 
( ( &lt;LBRACE&gt; <link linkend="prod11">nonReserved</link> <link linkend="prod69">joinedTable</link> &lt;RBRACE&gt; ) | <link linkend="prod69">joinedTable</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod69" xreflabel="joinedTable"/>joinedTable</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod70">tablePrimary</link> ( ( <link linkend="prod71">crossJoin</link> | <link linkend="prod72">qualifiedJoin</link> ) )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod71" xreflabel="crossJoin"/>crossJoin</para></entry>
<entry align="left" valign="top"><para>::= 
( ( &lt;CROSS&gt; | &lt;UNION&gt; ) &lt;JOIN&gt; <link linkend="prod70">tablePrimary</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod72" xreflabel="qualifiedJoin"/>qualifiedJoin</para></entry>
<entry align="left" valign="top"><para>::= 
( ( ( &lt;RIGHT&gt; ( &lt;OUTER&gt; )? ) | ( &lt;LEFT&gt; ( &lt;OUTER&gt; )? ) | ( &lt;FULL&gt; ( &lt;OUTER&gt; )? ) | &lt;INNER&gt; )? &lt;JOIN&gt; <link linkend="prod68">tableReference</link> &lt;ON&gt; <link linkend="prod34">criteria</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod70" xreflabel="tablePrimary"/>tablePrimary</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod73">textTable</link> | <link linkend="prod74">arrayTable</link> | <link linkend="prod75">xmlTable</link> | <link linkend="prod76">unaryFromClause</link> | <link linkend="prod77">subqueryFromClause</link> | ( &lt;LPAREN&gt; <link linkend="prod69">joinedTable</link> &lt;RPAREN&gt; ) ) ( ( &lt;MAKEDEP&gt; ) | ( &lt;MAKENOTDEP&gt; ) )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod78" xreflabel="xmlSerialize"/>xmlSerialize</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLSERIALIZE&gt; &lt;LPAREN&gt; ( <link linkend="prod11">nonReserved</link> )? <link linkend="prod24">expression</link> ( &lt;AS&gt; ( &lt;STRING&gt; | &lt;VARCHAR&gt; | &lt;CLOB&gt; ) )? &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod11" xreflabel="nonReserved"/>nonReserved</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ID&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod74" xreflabel="arrayTable"/>arrayTable</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ID&gt; &lt;LPAREN&gt; <link linkend="prod24">expression</link> <link linkend="prod11">nonReserved</link> <link linkend="prod38">createElementsWithTypes</link> &lt;RPAREN&gt; ( &lt;AS&gt; )? <link linkend="prod2">id</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod73" xreflabel="textTable"/>textTable</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ID&gt; &lt;LPAREN&gt; <link linkend="prod24">expression</link> ( &lt;ID&gt; <link linkend="prod1">stringVal</link> )? <link linkend="prod11">nonReserved</link> <link linkend="prod79">textColumn</link> ( &lt;COMMA&gt; <link linkend="prod79">textColumn</link> )* ( &lt;NO&gt; &lt;ROW&gt; <link linkend="prod11">nonReserved</link> )? ( &lt;ID&gt; <link linkend="prod65">charVal</link> )? ( ( &lt;ESCAPE&gt; <link linkend="prod65">charVal</link> ) | ( &lt;ID&gt; <link linkend="prod65">charVal</link> ) )? ( &lt;ID&gt; ( <link linkend="prod80">intVal</link> )? )? ( &lt;ID&gt; <link linkend="prod80">intVal</link> )? &lt;RPAREN&gt; ( &lt;AS&gt; )? <link linkend="prod2">id</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod79" xreflabel="textColumn"/>textColumn</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> <link linkend="prod35">dataType</link> ( &lt;ID&gt; <link linkend="prod80">intVal</link> ( &lt;NO&gt; <link linkend="prod11">nonReserved</link> )? )? ( &lt;ID&gt; <link linkend="prod1">stringVal</link> <link linkend="prod80">intVal</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod81" xreflabel="xmlQuery"/>xmlQuery</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLQUERY&gt; &lt;LPAREN&gt; ( <link linkend="prod82">xmlNamespaces</link> &lt;COMMA&gt; )? <link linkend="prod1">stringVal</link> ( &lt;ID&gt; <link linkend="prod61">derivedColumn</link> ( &lt;COMMA&gt; <link linkend="prod61">derivedColumn</link> )* )? ( ( &lt;NULL&gt; | <link linkend="prod11">nonReserved</link> ) &lt;ON&gt; <link linkend="prod11">nonReserved</link> )? &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod75" xreflabel="xmlTable"/>xmlTable</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLTABLE&gt; &lt;LPAREN&gt; ( <link linkend="prod82">xmlNamespaces</link> &lt;COMMA&gt; )? <link linkend="prod1">stringVal</link> ( &lt;ID&gt; <link linkend="prod61">derivedColumn</link> ( &lt;COMMA&gt; <link linkend="prod61">derivedColumn</link> )* )? ( &lt;ID&gt; <link linkend="prod83">xmlColumn</link> ( &lt;COMMA&gt; <link linkend="prod83">xmlColumn</link> )* )? &lt;RPAREN&gt; ( &lt;AS&gt; )? <link linkend="prod2">id</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod83" xreflabel="xmlColumn"/>xmlColumn</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link> ( ( &lt;FOR&gt; <link linkend="prod11">nonReserved</link> ) | ( <link linkend="prod35">dataType</link> ( &lt;DEFAULT_KEYWORD&gt; <link linkend="prod24">expression</link> )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod1">stringVal</link> )? ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod80" xreflabel="intVal"/>intVal</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;INTEGERVAL&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod77" xreflabel="subqueryFromClause"/>subqueryFromClause</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;TABLE&gt; )? &lt;LPAREN&gt; ( <link linkend="prod13">queryExpression</link> | <link linkend="prod15">storedProcedure</link> ) &lt;RPAREN&gt; ( &lt;AS&gt; )? <link linkend="prod2">id</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod76" xreflabel="unaryFromClause"/>unaryFromClause</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;ID&gt; ( ( &lt;AS&gt; )? <link linkend="prod2">id</link> )? )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod45" xreflabel="where"/>where</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;WHERE&gt; <link linkend="prod34">criteria</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod34" xreflabel="criteria"/>criteria</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod84">compoundCritOr</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod84" xreflabel="compoundCritOr"/>compoundCritOr</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod85">compoundCritAnd</link> ( &lt;OR&gt; <link linkend="prod85">compoundCritAnd</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod85" xreflabel="compoundCritAnd"/>compoundCritAnd</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod86">notCrit</link> ( &lt;AND&gt; <link linkend="prod86">notCrit</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod86" xreflabel="notCrit"/>notCrit</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;NOT&gt; )? <link linkend="prod67">booleanPrimary</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod67" xreflabel="booleanPrimary"/>booleanPrimary</para></entry>
<entry align="left" valign="top"><para>::= 
( ( <link linkend="prod87">commonValueExpression</link> ( ( <link linkend="prod88">betweenCrit</link> | <link linkend="prod89">matchCrit</link> | <link linkend="prod90">regexMatchCrit</link> | <link linkend="prod91">setCrit</link> | <link linkend="prod92">isNullCrit</link> | <link linkend="prod93">subqueryCompareCriteria</link> | <link linkend="prod94">compareCrit</link> ) )? ) | <link linkend="prod95">existsCriteria</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod96" xreflabel="operator"/>operator</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;EQ&gt; | &lt;NE&gt; | &lt;NE2&gt; | &lt;LT&gt; | &lt;LE&gt; | &lt;GT&gt; | &lt;GE&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod94" xreflabel="compareCrit"/>compareCrit</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod96">operator</link> <link linkend="prod87">commonValueExpression</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod97" xreflabel="subquery"/>subquery</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;LPAREN&gt; ( <link linkend="prod13">queryExpression</link> | ( <link linkend="prod15">storedProcedure</link> ) ) &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod98" xreflabel="subqueryAndHint"/>subqueryAndHint</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod97">subquery</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod93" xreflabel="subqueryCompareCriteria"/>subqueryCompareCriteria</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod96">operator</link> ( &lt;ANY&gt; | &lt;SOME&gt; | &lt;ALL&gt; ) <link linkend="prod97">subquery</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod89" xreflabel="matchCrit"/>matchCrit</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;NOT&gt; )? ( &lt;LIKE&gt; | ( &lt;SIMILAR&gt; &lt;TO&gt; ) ) <link linkend="prod87">commonValueExpression</link> ( &lt;ESCAPE&gt; <link linkend="prod65">charVal</link> | ( &lt;LBRACE&gt; &lt;ESCAPE&gt; <link linkend="prod65">charVal</link> &lt;RBRACE&gt; ) )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod90" xreflabel="regexMatchCrit"/>regexMatchCrit</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;NOT&gt; )? &lt;LIKE_REGEX&gt; <link linkend="prod87">commonValueExpression</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod65" xreflabel="charVal"/>charVal</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod1">stringVal</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod88" xreflabel="betweenCrit"/>betweenCrit</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;NOT&gt; )? &lt;BETWEEN&gt; <link linkend="prod87">commonValueExpression</link> &lt;AND&gt; <link linkend="prod87">commonValueExpression</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod92" xreflabel="isNullCrit"/>isNullCrit</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;IS&gt; ( &lt;NOT&gt; )? &lt;NULL&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod91" xreflabel="setCrit"/>setCrit</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;NOT&gt; )? &lt;IN&gt; ( ( <link linkend="prod98">subqueryAndHint</link> ) | ( &lt;LPAREN&gt; <link linkend="prod87">commonValueExpression</link> ( &lt;COMMA&gt; <link linkend="prod87">commonValueExpression</link> )* &lt;RPAREN&gt; ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod95" xreflabel="existsCriteria"/>existsCriteria</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;EXISTS&gt; <link linkend="prod98">subqueryAndHint</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod56" xreflabel="groupBy"/>groupBy</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;GROUP&gt; &lt;BY&gt; <link linkend="prod44">expressionList</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod57" xreflabel="having"/>having</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;HAVING&gt; <link linkend="prod34">criteria</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod49" xreflabel="orderby"/>orderby</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;ORDER&gt; &lt;BY&gt; <link linkend="prod99">sortSpecification</link> ( &lt;COMMA&gt; <link linkend="prod99">sortSpecification</link> )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod99" xreflabel="sortSpecification"/>sortSpecification</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod100">sortKey</link> ( &lt;ASC&gt; | &lt;DESC&gt; )? ( <link linkend="prod11">nonReserved</link> <link linkend="prod11">nonReserved</link> )?</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod100" xreflabel="sortKey"/>sortKey</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod24">expression</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod101" xreflabel="intParam"/>intParam</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod80">intVal</link> | &lt;QMARK&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod50" xreflabel="limit"/>limit</para></entry>
<entry align="left" valign="top"><para>::= 
( ( &lt;LIMIT&gt; <link linkend="prod101">intParam</link> ( &lt;COMMA&gt; <link linkend="prod101">intParam</link> )? ) | ( &lt;OFFSET&gt; <link linkend="prod101">intParam</link> ( &lt;ROW&gt; | &lt;ROWS&gt; ) ( <link linkend="prod102">fetchLimit</link> )? ) | ( <link linkend="prod102">fetchLimit</link> ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod102" xreflabel="fetchLimit"/>fetchLimit</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;FETCH&gt; <link linkend="prod11">nonReserved</link> ( <link linkend="prod101">intParam</link> )? ( &lt;ROW&gt; | &lt;ROWS&gt; ) &lt;ONLY&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod41" xreflabel="option"/>option</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;OPTION&gt; ( &lt;MAKEDEP&gt; <link linkend="prod2">id</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> )* | &lt;MAKENOTDEP&gt; <link linkend="prod2">id</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> )* | &lt;NOCACHE&gt; ( <link linkend="prod2">id</link> ( &lt;COMMA&gt; <link linkend="prod2">id</link> )* )? )*</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod24" xreflabel="expression"/>expression</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod34">criteria</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod87" xreflabel="commonValueExpression"/>commonValueExpression</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod103">plusExpression</link> ( &lt;CONCAT_OP&gt; <link linkend="prod103">plusExpression</link> )* )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod103" xreflabel="plusExpression"/>plusExpression</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod104">timesExpression</link> ( <link linkend="prod105">plusOperator</link> <link linkend="prod104">timesExpression</link> )* )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod105" xreflabel="plusOperator"/>plusOperator</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;PLUS&gt; | &lt;MINUS&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod104" xreflabel="timesExpression"/>timesExpression</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod106">valueExpressionPrimary</link> ( <link linkend="prod107">timesOperator</link> <link linkend="prod106">valueExpressionPrimary</link> )* )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod107" xreflabel="timesOperator"/>timesOperator</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;STAR&gt; | &lt;SLASH&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod106" xreflabel="valueExpressionPrimary"/>valueExpressionPrimary</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;QMARK&gt; | &lt;POS_REF&gt; | <link linkend="prod108">literal</link> | ( &lt;LBRACE&gt; <link linkend="prod11">nonReserved</link> <link linkend="prod109">function</link> &lt;RBRACE&gt; ) | ( <link linkend="prod64">textAgg</link> ( <link linkend="prod110">windowSpecification</link> )? ) | ( <link linkend="prod66">aggregateSymbol</link> ( <link linkend="prod110">windowSpecification</link> )? ) | ( <link linkend="prod66">aggregateSymbol</link> ( <link linkend="prod110">windowSpecification</link> )? ) | <link linkend="prod62">orderedAgg</link> ( <link linkend="prod110">windowSpecification</link> )? | ( <link linkend="prod66">aggregateSymbol</link> <link linkend="prod110">windowSpecification</link> ) | ( <link linkend="prod109">function</link> ) | ( &lt;ID&gt; ( &lt;LSBRACE&gt; <link linkend="prod80">intVal</link> &lt;RSBRACE&gt; )? ) | <link linkend="prod97">subquery</link> | ( &lt;LPAREN&gt; <link linkend="prod24">expression</link> &lt;RPAREN&gt; ( &lt;LSBRACE&gt; <link linkend="prod80">intVal</link> &lt;RSBRACE&gt; )? ) | <link linkend="prod111">searchedCaseExpression</link> | <link linkend="prod112">caseExpression</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod110" xreflabel="windowSpecification"/>windowSpecification</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;OVER&gt; &lt;LPAREN&gt; ( &lt;PARTITION&gt; &lt;BY&gt; <link linkend="prod44">expressionList</link> )? ( <link linkend="prod49">orderby</link> )? &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod112" xreflabel="caseExpression"/>caseExpression</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;CASE&gt; <link linkend="prod24">expression</link> ( &lt;WHEN&gt; <link linkend="prod24">expression</link> &lt;THEN&gt; <link linkend="prod24">expression</link> )+ ( &lt;ELSE&gt; <link linkend="prod24">expression</link> )? &lt;END&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod111" xreflabel="searchedCaseExpression"/>searchedCaseExpression</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;CASE&gt; ( &lt;WHEN&gt; <link linkend="prod34">criteria</link> &lt;THEN&gt; <link linkend="prod24">expression</link> )+ ( &lt;ELSE&gt; <link linkend="prod24">expression</link> )? &lt;END&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod109" xreflabel="function"/>function</para></entry>
<entry align="left" valign="top"><para>::= 
( ( &lt;CONVERT&gt; &lt;LPAREN&gt; <link linkend="prod24">expression</link> &lt;COMMA&gt; <link linkend="prod35">dataType</link> &lt;RPAREN&gt; ) | ( &lt;CAST&gt; &lt;LPAREN&gt; <link linkend="prod24">expression</link> &lt;AS&gt; <link linkend="prod35">dataType</link> &lt;RPAREN&gt; ) | ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; <link linkend="prod24">expression</link> ( ( &lt;FROM&gt; <link linkend="prod24">expression</link> ( &lt;FOR&gt; <link linkend="prod24">expression</link> )? ) | ( &lt;COMMA&gt; <link linkend="prod44">expressionList</link> ) ) &lt;RPAREN&gt; ) | ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; ( &lt;YEAR&gt; | &lt;MONTH&gt; | &lt;DAY&gt; | &lt;HOUR&gt; | &lt;MINUTE&gt; | &lt;SECOND&gt; ) &lt;FROM&gt; <link linkend="prod24">expression</link> &lt;RPAREN&gt; ) | ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; ( ( ( ( &lt;LEADING&gt; | &lt;TRAILING&gt; | &lt;BOTH&gt; ) ( <link linkend="prod24">expression</link> )? ) | <link linkend="prod24">expression</link> ) &lt;FROM&gt; )? <link linkend="prod24">expression</link> &lt;RPAREN&gt; ) | ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; <link linkend="prod24">expression</link> &lt;COMMA&gt; <link linkend="prod113">stringConstant</link> &lt;RPAREN&gt; ) | ( <link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; <link linkend="prod114">intervalType</link> &lt;COMMA&gt; <link linkend="prod24">expression</link> &lt;COMMA&gt; <link linkend="prod24">expression</link> &lt;RPAREN&gt; ) | <link linkend="prod115">queryString</link> | ( ( &lt;LEFT&gt; | &lt;RIGHT&gt; | &lt;CHAR&gt; | &lt;USER&gt; | &lt;YEAR&gt; | &lt;MONTH&gt; | &lt;HOUR&gt; | &lt;MINUTE&gt; | &lt;SECOND&gt; | &lt;XMLCONCAT&gt; | &lt;XMLCOMMENT&gt; ) &lt;LPAREN&gt; ( <link linkend="prod44">expressionList</link> )? &lt;RPAREN&gt; ) | ( ( &lt;TRANSLATE&gt; | &lt;INSERT&gt; ) &lt;LPAREN&gt; ( <link linkend="prod44">expressionList</link> )? &lt;RPAREN&gt; ) | <link linkend="prod116">xmlParse</link> | <link linkend="prod117">xmlElement</link> | ( &lt;XMLPI&gt; &lt;LPAREN&gt; ( &lt;ID&gt; <link linkend="prod118">idExpression</link> | <link linkend="prod118">idExpression</link> ) ( &lt;COMMA&gt; <link linkend="prod24">expression</link> )? &lt;RPAREN&gt; ) | <link linkend="prod119">xmlForest</link> | <link linkend="prod78">xmlSerialize</link> | <link linkend="prod81">xmlQuery</link> | ( <link linkend="prod2">id</link> &lt;LPAREN&gt; ( <link linkend="prod44">expressionList</link> )? &lt;RPAREN&gt; ) )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod113" xreflabel="stringConstant"/>stringConstant</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod1">stringVal</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod116" xreflabel="xmlParse"/>xmlParse</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLPARSE&gt; &lt;LPAREN&gt; <link linkend="prod11">nonReserved</link> <link linkend="prod24">expression</link> ( <link linkend="prod11">nonReserved</link> )? &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod115" xreflabel="queryString"/>queryString</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod11">nonReserved</link> &lt;LPAREN&gt; <link linkend="prod24">expression</link> ( &lt;COMMA&gt; <link linkend="prod61">derivedColumn</link> )* &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod117" xreflabel="xmlElement"/>xmlElement</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLELEMENT&gt; &lt;LPAREN&gt; ( &lt;ID&gt; <link linkend="prod2">id</link> | <link linkend="prod2">id</link> ) ( &lt;COMMA&gt; <link linkend="prod82">xmlNamespaces</link> )? ( &lt;COMMA&gt; <link linkend="prod120">xmlAttributes</link> )? ( &lt;COMMA&gt; <link linkend="prod24">expression</link> )* &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod120" xreflabel="xmlAttributes"/>xmlAttributes</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLATTRIBUTES&gt; &lt;LPAREN&gt; <link linkend="prod61">derivedColumn</link> ( &lt;COMMA&gt; <link linkend="prod61">derivedColumn</link> )* &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod119" xreflabel="xmlForest"/>xmlForest</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLFOREST&gt; &lt;LPAREN&gt; ( <link linkend="prod82">xmlNamespaces</link> &lt;COMMA&gt; )? <link linkend="prod61">derivedColumn</link> ( &lt;COMMA&gt; <link linkend="prod61">derivedColumn</link> )* &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod82" xreflabel="xmlNamespaces"/>xmlNamespaces</para></entry>
<entry align="left" valign="top"><para>::= 
&lt;XMLNAMESPACES&gt; &lt;LPAREN&gt; <link linkend="prod121">namespaceItem</link> ( &lt;COMMA&gt; <link linkend="prod121">namespaceItem</link> )* &lt;RPAREN&gt;</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod121" xreflabel="namespaceItem"/>namespaceItem</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod1">stringVal</link> &lt;AS&gt; <link linkend="prod2">id</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para></para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;NO&gt; &lt;DEFAULT_KEYWORD&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para></para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;DEFAULT_KEYWORD&gt; <link linkend="prod1">stringVal</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod118" xreflabel="idExpression"/>idExpression</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod2">id</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod22" xreflabel="dataTypeString"/>dataTypeString</para></entry>
<entry align="left" valign="top"><para>::= 
( &lt;STRING&gt; | &lt;VARCHAR&gt; | &lt;BOOLEAN&gt; | &lt;BYTE&gt; | &lt;TINYINT&gt; | &lt;SHORT&gt; | &lt;SMALLINT&gt; | &lt;CHAR&gt; | &lt;INTEGER&gt; | &lt;LONG&gt; | &lt;BIGINT&gt; | &lt;BIGINTEGER&gt; | &lt;FLOAT&gt; | &lt;REAL&gt; | &lt;DOUBLE&gt; | &lt;BIGDECIMAL&gt; | &lt;DECIMAL&gt; | &lt;DATE&gt; | &lt;TIME&gt; | &lt;TIMESTAMP&gt; | &lt;OBJECT&gt; | &lt;BLOB&gt; | &lt;CLOB&gt; | &lt;XML&gt; )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod35" xreflabel="dataType"/>dataType</para></entry>
<entry align="left" valign="top"><para>::= 
<link linkend="prod22">dataTypeString</link></para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod114" xreflabel="intervalType"/>intervalType</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod11">nonReserved</link> )</para></entry></row>
<row>
<entry align="right" valign="top"><para><anchor id="prod108" xreflabel="literal"/>literal</para></entry>
<entry align="left" valign="top"><para>::= 
( <link linkend="prod1">stringVal</link> | &lt;INTEGERVAL&gt; | &lt;FLOATVAL&gt; | &lt;DECIMALVAL&gt; | &lt;FALSE&gt; | &lt;TRUE&gt; | &lt;UNKNOWN&gt; | &lt;NULL&gt; | ( ( &lt;BOOLEANTYPE&gt; | &lt;TIMESTAMPTYPE&gt; | &lt;DATETYPE&gt; | &lt;TIMETYPE&gt; ) <link linkend="prod1">stringVal</link> &lt;RBRACE&gt; ) )</para></entry></row>
</tbody>
</tgroup>
</informaltable>
</section>
</appendix>