ibm-information-center/dist/eclipse/plugins/i5OS.ic.db2_5.4.0.1/rbafzmstassignstmt.htm

132 lines
8.0 KiB
HTML

<?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" lang="en-US" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="dc.language" scheme="rfc1766" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<meta name="dc.date" scheme="iso8601" content="2005-09-19" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow"/>
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="keywords" content="assignment-statement, SQL-control-statement,
SQL statements" />
<title>assignment-statement</title>
<link rel="stylesheet" type="text/css" href="ibmidwb.css" />
<link rel="stylesheet" type="text/css" href="ic.css" />
</head>
<body>
<a id="Top_Of_Page" name="Top_Of_Page"></a><!-- Java sync-link -->
<script language = "Javascript" src = "../rzahg/synch.js" type="text/javascript"></script>
<a name="assignstmt"></a>
<h2 id="assignstmt"><a href="rbafzmst02.htm#ToC_1410">assignment-statement</a></h2><a id="idx3328" name="idx3328"></a><a id="idx3329" name="idx3329"></a>
<p>The assignment-statement assigns a value to an SQL parameter or SQL variable.</p>
<a name="wq1849"></a>
<h3 id="wq1849"><a href="rbafzmst02.htm#ToC_1411">Syntax</a></h3>
<a href="rbafzmstassignstmt.htm#synassignment"><img src="c.gif" alt="Click to skip syntax diagram" /></a>
<p>
</p>
<pre class="cgraphic"><span><img src="c.gif" alt="Read syntax diagram" longdesc="rbafzmstsyn406.htm"
border="0" /></span><a href="#skipsyn-405"><img src="c.gif" alt="Skip visual syntax diagram"
border="0" /></a>>>-+--------+--SET--<span class="italic">assignment-clause</span>-------------------------->&lt;
'-<span class="italic">label:</span>-'
</pre>
<a name="skipsyn-405" id="skipsyn-405"></a><p class="indatacontent">
</p>
<a name="wq1850"></a>
<div class="fignone" id="wq1850">
<p><span class="bold">assignment-clause:</span></p>
<pre class="cgraphic"><span><img src="c.gif" alt="Read syntax diagram" longdesc="rbafzmstsyn407.htm"
border="0" /></span><a href="#skipsyn-406"><img src="c.gif" alt="Skip visual syntax diagram"
border="0" /></a> .-,-----------------------------------------------------------------------.
V |
>>---+-+-<span class="italic">SQL-parameter-name</span>-+--&nbsp;=&nbsp;--+-<span class="italic">expression</span>-+-------------------------+-+->&lt;
| '-<span class="italic">SQL-variable-name</span>--' +-NULL-------+ |
| '-DEFAULT----' |
| .-,----------------------. .-,--------------. |
| V | V | |
'-(----+-<span class="italic">SQL-parameter-name</span>-+-+--)--&nbsp;=&nbsp;--+-(----+-<span class="italic">expression</span>-+-+--)-+-'
'-<span class="italic">SQL-variable-name</span>--' | +-NULL-------+ |
| '-DEFAULT----' |
'-<span><span class="italic">row-fullselect</span></span>-----------'
</pre>
<a name="skipsyn-406" id="skipsyn-406"></a></div>
<a name="synassignment"></a>
<h3 id="synassignment"><a href="rbafzmst02.htm#ToC_1412">Description</a></h3>
<dl class="parml">
<dt class="bold"><span class="italic">label</span></dt>
<dd>Specifies the label for the <span class="italic">assignment-statement</span> statement. The label name cannot be the same as another label within
the same scope. For more information, see <a href="rbafzmstsqlprocstmt.htm#psscope">Labels</a>.
</dd>
<dt class="bold"><span class="italic">SQL-parameter-name</span></dt>
<dd>Identifies the SQL parameter that is the assignment target. The SQL
parameter must be specified in <span class="italic">parameter-declaration</span> in
the CREATE PROCEDURE or CREATE FUNCTION statement.
</dd>
<dt class="bold"><span class="italic">SQL-variable-name</span></dt>
<dd>Identifies the SQL variable that is the assignment target. SQL variables
can be defined in a compound statement or be a transition variable.
</dd>
<dt class="bold"><span class="italic">expression</span> <span class="base">or</span> NULL</dt>
<dd>Specifies the expression or value that is the source for the assignment.
</dd>
<dt class="bold">DEFAULT</dt>
<dd>Specifies that the default value for the column associated with the
transition variable will be used. This can only be specified in SQL triggers
for transition variables.
</dd>
<dt class="bold"><span class="italic">row-fullselect</span></dt>
<dd>A fullselect that returns a single result row. The result column values
are assigned to the corresponding SQL variable or parameter. If the result
of the fullselect is no rows, then null values are assigned. An error is returned
if there is more than one row in the result.
</dd>
</dl>
<a name="wq1851"></a>
<h3 id="wq1851"><a href="rbafzmst02.htm#ToC_1413">Notes</a></h3>
<p><span class="bold">Assignment rules:</span> Assignments in the assignment statement
must conform to the SQL assignment rules as described in <a href="rbafzmstch2bas.htm#ch2bas">Assignments and comparisons</a>.
If assigning to a string variable, storage assignment rules apply.</p>
<p><span class="bold">Assignment rules for SQL parameters:</span> An IN parameter
can appear on the left or right side of an assignment-statement. When control
returns to the caller, the original value of the IN parameter is retained.
An OUT parameter can also appear on the left or right side of an assignment-statement.
If used without first being assigned a value, the value is undefined. When
control returns to the caller, the last value that is assigned to an OUT parameter
is returned to the caller. For an INOUT parameter, the first value of the
parameter is determined by the caller, and the last value that is assigned
to the parameter is returned to the caller.</p>
<p><span class="bold">Special Registers:</span> If a variable has been declared
with an identifier that matches the name of a special register (such as PATH),
then the variable must be delimited to distinguish it from assignment to the
special register (for example, SET "PATH" = 1; for a variable called PATH
declared as an integer).</p>
<p><span class="bold">SQLCODE and SQLSTATE:</span> The SQLCODE and SQLSTATE will
be reset and the diagnostic area or SQLCA initialized for each <span class="italic">assignment-statement</span> other than <span class="italic">assignment-statements</span> that:</p>
<ul>
<li>assign the SQLSTATE or SQLCODE variable to another variable or</li>
<li>set a constant value into the SQLSTATE or SQLCODE variable.</li></ul>
<a name="wq1852"></a>
<h3 id="wq1852"><a href="rbafzmst02.htm#ToC_1414">Example</a></h3>
<p>Increase the SQL variable p_salary by 10 percent.</p>
<pre class="xmp"> <span class="bold">SET</span> p_salary = p_salary + (p_salary * .10)
</pre>
<p>Set SQL variable p_salary to the null value</p>
<pre class="xmp"> <span class="bold">SET</span> p_salary = <span class="bold">NULL</span></pre>
<hr /><br />
[ <a href="#Top_Of_Page">Top of Page</a> | <a href="rbafzmstsqlprocstmt.htm">Previous Page</a> | <a href="rbafzmstcallstmt.htm">Next Page</a> | <a href="rbafzmst02.htm#wq1">Contents</a> |
<a href="rbafzmstindex.htm#index">Index</a> ]
<a id="Bot_Of_Page" name="Bot_Of_Page"></a>
</body>
</html>