ibm-information-center/dist/eclipse/plugins/i5OS.ic.sqlp_5.4.0.1/rbafyudfcfx6.htm

64 lines
3.9 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<?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 lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<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="DC.Type" content="reference" />
<meta name="DC.Title" content="Example: Counting" />
<meta name="abstract" content="Your simple counting function returns a 1 the first time and increments the result by one each time it is called. This function takes no SQL arguments, and by definition it is a NOT DETERMINISTIC function since its answer varies from call to call." />
<meta name="description" content="Your simple counting function returns a 1 the first time and increments the result by one each time it is called. This function takes no SQL arguments, and by definition it is a NOT DETERMINISTIC function since its answer varies from call to call." />
<meta name="DC.subject" content="examples, counting and defining UDFs, CREATE FUNCTION statement, counting example" />
<meta name="keywords" content="examples, counting and defining UDFs, CREATE FUNCTION statement, counting example" />
<meta name="DC.Relation" scheme="URI" content="rbafyudfdudf.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rbafyudfcfx6" />
<meta name="DC.Language" 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. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Example: Counting </title>
</head>
<body id="rbafyudfcfx6"><a name="rbafyudfcfx6"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Example: Counting </h1>
<div><p>Your simple counting function returns a <samp class="codeph">1</samp> the
first time and increments the result by one each time it is called. This function
takes no SQL arguments, and by definition it is a NOT DETERMINISTIC function
since its answer varies from call to call.</p>
<div class="section"><p>It uses the SCRATCHPAD to save the last value returned. Each time
it is called, the function increments this value and returns it.</p>
<pre> <strong>CREATE FUNCTION</strong> COUNTER ()
<strong>RETURNS INT</strong>
<strong>EXTERNAL NAME</strong> 'MYLIB/MYFUNCS(CTR)'
<strong> LANGUAGE C
PARAMETER STYLE DB2SQL
NO SQL
NOT DETERMINISTIC
NOT FENCED
SCRATCHPAD 4
DISALLOW PARALLEL</strong></pre>
</div>
<div class="section"><p>Note that no parameter definitions are provided, just empty parentheses.
The above function specifies SCRATCHPAD and uses the default specification
of NO FINAL CALL. In this case, the size of the scratchpad is set to only
4 bytes, which is sufficient for a counter. Since the COUNTER function requires
that a single scratchpad be used to operate properly, DISALLOW PARALLEL is
added to prevent DB2<sup>®</sup> from operating it in parallel.</p>
</div>
</div>
<div>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rbafyudfdudf.htm" title="A UDF must be registered in the database before the function can be recognized and used by SQL.">Register UDFs</a></div>
</div>
</div>
</body>
</html>