| <?xml version="1.0" encoding="UTF-8"?> |
| <!DOCTYPE html |
| PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-us" lang="en-us"> |
| <head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| |
| <meta name="generator" content="DITA-OT" /><meta name="DC.type" content="reference" /> |
| <meta name="DC.title" content="BNF for the Object Query Language" /> |
| <meta name="DC.relation" scheme="URI" content="../reference/oqlsyntax.html" /> |
| <meta name="copyright" content="Copyright (c) 2008, 2010 SAP AG and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ " type="primary" /> |
| <meta name="DC.rights.owner" content="Copyright (c) 2008, 2010 SAP AG and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ " type="primary" /> |
| <meta name="DC.format" content="XHTML" /> |
| <meta name="DC.identifier" content="ref_bnfofoql" /> |
| <meta name="DC.language" content="en-us" /> |
| <link rel="stylesheet" type="text/css" href="../styles/commonltr.css" /> |
| <title>BNF for the Object Query Language</title> |
| </head> |
| <body id="ref_bnfofoql"> |
| |
| <h1 class="title topictitle1" id="ariaid-title1">BNF for the Object Query Language</h1> |
| |
| |
| |
| <div class="body refbody"> |
| <div class="section"> |
| <table cellpadding="4" cellspacing="0" summary="" id="ref_bnfofoql__oql_table" border="1" class="simpletable"><col style="width:33.33333333333333%" /><col style="width:33.33333333333333%" /><col style="width:33.33333333333333%" /><thead></thead><tbody><tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>SelectStatement</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"SELECT" SelectList FromClause ( WhereClause )? ( UnionClause )?</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>SelectList</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>(( "DISTINCT" | "AS RETAINED SET" )? ( "*" | "OBJECTS" SelectItem | SelectItem ( "," SelectItem )* ))</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>SelectItem</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( PathExpression | EnvVarPathExpression ) ( "AS" ( <STRING_LITERAL> | <IDENTIFIER> ) )?</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>PathExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( ObjectFacet | BuiltInFunction ) ( "." ObjectFacet | "[" SimpleExpression ( ":" SimpleExpression)? "]" )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>EnvVarPathExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( "$" "{" <IDENTIFIER> "}" ) ( "." ObjectFacet | "[" SimpleExpression ( ":" SimpleExpression)? "]" )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ObjectFacet</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( ( "@" )? <IDENTIFIER> ( ParameterList )? )</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ParameterList</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"(" ( ( SimpleExpression ( "," SimpleExpression )* ) )? ")"</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>FromClause</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"FROM" ( "OBJECTS" )? ( "INSTANCEOF" )? ( FromItem | "(" SelectStatement ")" ) ( <IDENTIFIER> )?</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>FromItem</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( ClassName | <STRING_LITERAL> | ObjectAddress ( "," ObjectAddress )* | ObjectId ( "," ObjectId )* | EnvVarPathExpression )</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ClassName</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( <IDENTIFIER> ( "." <IDENTIFIER> )* ( "[]" )* )</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ObjectAddress</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code><HEX_LITERAL></code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ObjectId</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code><INTEGER_LITERAL></code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>WhereClause</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"WHERE" ConditionalOrExpression</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ConditionalOrExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ConditionalAndExpression ( "or" ConditionalAndExpression )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>ConditionalAndExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>EqualityExpression ( "and" EqualityExpression )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>EqualityExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>RelationalExpression ( ( "=" RelationalExpression | "!=" RelationalExpression ) )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>RelationalExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( SimpleExpression ( ( "<" SimpleExpression | ">" SimpleExpression | "<=" SimpleExpression | ">=" SimpleExpression | ( LikeClause | InClause ) | "implements" ClassName ) )? )</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>LikeClause</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( "NOT" )? "LIKE" <STRING_LITERAL></code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>InClause</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( "NOT" )? "IN" SimpleExpression</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>SimpleExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>MultiplicativeExpression ( "+" MultiplicativeExpression | "-" MultiplicativeExpression )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>MultiplicativeExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>PrimaryExpression ( "*" PrimaryExpression | "/" PrimaryExpression )*</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>PrimaryExpression</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>Literal</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code> </code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>|</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"(" ( ConditionalOrExpression | SubQuery ) ")</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code> </code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>|</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>PathExpression</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code> </code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>|</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>EnvVarPathExpression</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>SubQuery</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>SelectStatement</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>Function</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( ( "toHex" | "toString" | "dominators" | "outbounds" | "inbounds" | "classof" | "dominatorof" ) "(" ConditionalOrExpression ")" )</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>Literal</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( <INTEGER_LITERAL> | <LONG_LITERAL> | <FLOATING_POINT_LITERAL> | <CHARACTER_LITERAL> | <STRING_LITERAL> | BooleanLiteral | NullLiteral )</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>BooleanLiteral</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"true"</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code> </code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>|</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>"false"</code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>NullLiteral</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code><NULL></code></pre></td> |
| |
| </tr> |
| <tr class="strow"> |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>UnionClause</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>::=</code></pre></td> |
| |
| <td style="vertical-align:top;" class="stentry"><pre class="pre codeblock"><code>( "UNION" "(" SelectStatement ")" )+</code></pre></td> |
| |
| </tr> |
| </tbody></table> |
| |
| </div> |
| |
| </div> |
| |
| <div class="related-links"> |
| <div class="familylinks"> |
| <div class="parentlink"><strong>Parent topic:</strong> <a class="link" href="../reference/oqlsyntax.html">OQL Syntax</a></div> |
| </div> |
| </div></body> |
| </html> |