65 lines
4.1 KiB
HTML
65 lines
4.1 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 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: String search" />
|
||
|
<meta name="abstract" content="Suppose you have written a UDF to look for the existence of a given short string, passed as an argument, within a given CLOB value that is also passed as an argument. The UDF returns the position of the string within the CLOB if it finds the string, or zero if it does not." />
|
||
|
<meta name="description" content="Suppose you have written a UDF to look for the existence of a given short string, passed as an argument, within a given CLOB value that is also passed as an argument. The UDF returns the position of the string within the CLOB if it finds the string, or zero if it does not." />
|
||
|
<meta name="DC.subject" content="examples, string search and defining UDFs, CREATE FUNCTION statement, string search example" />
|
||
|
<meta name="keywords" content="examples, string search and defining UDFs, CREATE FUNCTION statement, string search 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="rbafyudfcfx2" />
|
||
|
<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: String search </title>
|
||
|
</head>
|
||
|
<body id="rbafyudfcfx2"><a name="rbafyudfcfx2"><!-- --></a>
|
||
|
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
|
||
|
<h1 class="topictitle1">Example: String search </h1>
|
||
|
<div><p>Suppose you have written a UDF to look for the existence of a given
|
||
|
short string, passed as an argument, within a given CLOB value
|
||
|
that is also passed as an argument. The UDF returns the position of the string
|
||
|
within the CLOB if it finds the string, or zero if it does not.</p>
|
||
|
<div class="section"><p>The C program was written to return a FLOAT result. Suppose you
|
||
|
know that when it is used in SQL, it should always return an INTEGER. You
|
||
|
can create the following function:</p>
|
||
|
<pre> <strong>CREATE FUNCTION</strong> FINDSTRING (<strong>CLOB</strong>(500K), <strong>VARCHAR</strong>(200))
|
||
|
<strong>RETURNS INTEGER
|
||
|
CAST FROM FLOAT</strong>
|
||
|
<strong>SPECIFIC</strong> FINDSTRING
|
||
|
<strong>EXTERNAL NAME</strong> 'MYLIB/MYPGM(FINDSTR)'
|
||
|
<strong>LANGUAGE C
|
||
|
PARAMETER STYLE DB2SQL
|
||
|
NO SQL
|
||
|
DETERMINISTIC
|
||
|
NO EXTERNAL ACTION
|
||
|
RETURNS NULL ON NULL INPUT</strong></pre>
|
||
|
</div>
|
||
|
<div class="section"><p>Note that a CAST FROM clause is used to specify that the UDF program
|
||
|
really returns a FLOAT value, but you want to cast this to INTEGER before
|
||
|
returning the value to the SQL statement which used the UDF. Also, you want
|
||
|
to provide your own specific name for the function. Because the UDF was not
|
||
|
written to handle NULL values, you use the RETURNS NULL ON NULL INPUT.</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>
|