<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head profile="http://internetalchemy.org/2003/02/profile"> <link rel="foaf" type="application/rdf+xml" title="FOAF" href="http://www.openlinksw.com/dataspace/uda/about.rdf" /> <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" /> <meta name="dc.title" content="Function: aset - Virtuoso Functions Guide" /> <meta name="dc.subject" content="Function: aset - Virtuoso Functions Guide" /> <meta name="dc.creator" content="OpenLink Software Documentation Team ; " /> <meta name="dc.copyright" content="OpenLink Software, 1999 - 2009" /> <link rel="top" href="index.html" title="OpenLink Virtuoso Universal Server: Documentation" /> <link rel="search" href="/doc/adv_search.vspx" title="Search OpenLink Virtuoso Universal Server: Documentation" /> <link rel="parent" href="functions.html" title="Chapter Contents" /> <link rel="prev" href="appendixa.html" title="Appendix" /> <link rel="next" href="functions.html#.html" title="" /> <link rel="shortcut icon" href="../images/misc/favicon.ico" type="image/x-icon" /> <link rel="stylesheet" type="text/css" href="doc.css" /> <link rel="stylesheet" type="text/css" href="/doc/translation.css" /> <title>Function: aset - Virtuoso Functions Guide</title> <meta http-equiv="Content-Type" content="text/xhtml; charset=UTF-8" /> <meta name="author" content="OpenLink Software Documentation Team ; " /> <meta name="copyright" content="OpenLink Software, 1999 - 2009" /> <meta name="keywords" content="" /> <meta name="GENERATOR" content="OpenLink XSLT Team" /> </head> <body> <div id="header"> <a name="fn_aset" /> <img src="../images/misc/logo.jpg" alt="" /> <h1>22. Virtuoso Functions Guide - aset</h1> </div> <div id="navbartop"> <div> <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_aref.html" title="aref">Prev</a> | <a class="link" href="fn_concat.html" title="concat">Next</a> </div> </div> <div id="currenttoc"> <form method="post" action="/doc/adv_search.vspx"> <div class="search">Keyword Search: <br /> <input type="text" name="q" /> <input type="submit" name="go" value="Go" /> </div> </form> <div> <a href="http://www.openlinksw.com/">www.openlinksw.com</a> </div> <div> <a href="http://docs.openlinksw.com/">docs.openlinksw.com</a> </div> <br /> <div> <a href="index.html">Book Home</a> </div> <br /> <div> <a href="contents.html">Contents</a> </div> <div> <a href="preface.html">Preface</a> </div> <br /> <div> <a class="selected" href="functions.html">Virtuoso Functions Guide</a> </div> <br /> <div> <a href="functions.html#admin">Administration</a> </div> <div> <a href="functions.html#aggr">Aggregate Functions</a> </div> <div> <a class="selected" href="functions.html#array">Array Manipulation</a> </div> <div class="selected"> <div> <a href="fn_aref.html">aref</a> </div> <div> <a class="selected" href="fn_aset.html">aset</a> </div> <div> <a href="fn_concat.html">concat</a> </div> <div> <a href="fn_concatenate.html">concatenate</a> </div> <div> <a href="fn_dvector.html">dvector</a> </div> <div> <a href="fn_get_keyword.html">get_keyword</a> </div> <div> <a href="fn_get_keyword_ucase.html">get_keyword_ucase</a> </div> <div> <a href="fn_gvector_digit_sort.html">gvector_digit_sort</a> </div> <div> <a href="fn_gvector_sort.html">gvector_sort</a> </div> <div> <a href="fn_isarray.html">isarray</a> </div> <div> <a href="fn_make_array.html">make_array</a> </div> <div> <a href="fn_position.html">position</a> </div> <div> <a href="fn_rowvector_digit_sort.html">rowvector_digit_sort</a> </div> <div> <a href="fn_serialize.html">serialize</a> </div> <div> <a href="fn_split_and_decode.html">split_and_decode</a> </div> <div> <a href="fn_tree_md5.html">tree_md5</a> </div> <div> <a href="fn_vector.html">vector</a> </div> <div> <a href="fn_vector_concat.html">vector_concat</a> </div> </div> <div> <a href="functions.html#bpel">BPEL APIs</a> </div> <div> <a href="functions.html#backup">Backup</a> </div> <div> <a href="functions.html#compression">Compression</a> </div> <div> <a href="functions.html#cursors">Cursor</a> </div> <div> <a href="functions.html#time">Date & Time Manipulation</a> </div> <div> <a href="functions.html#debug">Debug</a> </div> <div> <a href="functions.html#dict">Dictionary Manipulation</a> </div> <div> <a href="functions.html#encoding">Encoding & Decoding</a> </div> <div> <a href="functions.html#file">File Manipulation</a> </div> <div> <a href="functions.html#ft">Free Text</a> </div> <div> <a href="functions.html#hash">Hashing / Cryptographic</a> </div> <div> <a href="functions.html#ldap">LDAP</a> </div> <div> <a href="functions.html#localization">Locale</a> </div> <div> <a href="functions.html#mail">Mail</a> </div> <div> <a href="functions.html#misc">Miscellaneous</a> </div> <div> <a href="functions.html#number">Number</a> </div> <div> <a href="functions.html#phrz">Phrases</a> </div> <div> <a href="functions.html#rdf">RDF data</a> </div> <div> <a href="functions.html#rmt">Remote SQL Data Source</a> </div> <div> <a href="functions.html#repl">Replication</a> </div> <div> <a href="functions.html#soap">SOAP</a> </div> <div> <a href="functions.html#sql">SQL</a> </div> <div> <a href="functions.html#string">String</a> </div> <div> <a href="functions.html#txn">Transaction</a> </div> <div> <a href="functions.html#type">Type Mapping</a> </div> <div> <a href="functions.html#uddi">UDDI</a> </div> <div> <a href="functions.html#udt">User Defined Types & The CLR</a> </div> <div> <a href="functions.html#vad">VAD</a> </div> <div> <a href="functions.html#jvmpl">Virtuoso Java PL API</a> </div> <div> <a href="functions.html#bif">Virtuoso Server Extension Interface (VSEI)</a> </div> <div> <a href="functions.html#ws">Web & Internet</a> </div> <div> <a href="functions.html#xml">XML</a> </div> <div> <a href="functions.html#XPATH">XPATH & XQUERY</a> </div> <br /> <div> <a href="functionidx.html">Functions Index</a> </div> <br /> </div> <div id="text"> <h2>aset</h2> <div class="refpurpose">set array element</div> <div class="funcsynopsis"> <span class="funcdef"> <span class="function">aset</span> </span> (<span class="paramdef">in <span class="parameter">arg</span> any</span>, <span class="paramdef">in <span class="parameter">nth</span> integer</span>, <span class="paramdef">in <span class="parameter">new_elem</span> any</span>); </div> <div class="refsect1"> <div class="refsect1title">Description</div> <p>aset sets the nth element of a string, array or vector where nth is a zero-based index. If the first argument is a string, the nth character of string is replaced with the ASCII value given in the third argument elem.</p> </div> <div class="refsect1"> <div class="refsect1title">Parameters</div> <div class="refsect2"> <span class="refsect2title">arg – </span> A string, array or vector. </div> <div class="refsect2"> <span class="refsect2title">nth – </span> Zero-based element index. </div> <div class="refsect2"> <span class="refsect2title">nelem – </span> The new element. If <span class="computeroutput">arg</span> is a string, its nth element will be replaced by the ASCII value given in <span class="computeroutput">new_elem</span>. </div> </div> <div class="refsect1"> <div class="refsect1title">Return Values</div> <p> <span class="computeroutput">Aset</span> returns <span class="computeroutput">nelem</span>. It modifies its first argument.</p> </div> <div class="refsect1title">Errors</div> <table class="data"> <tr> <th class="data">SQLState</th> <th class="data">Error Code</th> <th class="data">Error Text</th> <th class="data">Description</th> </tr> <tr> <td class="data"> <a name="err22003" /> <span class="errorcode">22003</span> </td> <td class="data"> <a name="errSR020" /> <span class="errorcode">SR020</span> </td> <td class="data"> <span class="errorname">Bad array subscript %d in aset.</span> </td> <td class="data" /> </tr> </table> <br /> <p /> <div class="refsect1"> <div class="refsect1title">Examples</div> <a name="ex_aset_1" /> <div class="example"> <div class="exampletitle">Using make_string and aref</div> <p>Make a string, fill with character sequence from A to Z.</p> <div> <pre class="screen"> SQL> create procedure alphabet_string () { declare _inx integer; declare _str varchar; _str := make_string (26); while (_inx < 26) { aset (_str, _inx, _inx + 65); _inx := _inx + 1; } return (_str); } ; Done. -- 6 msec. SQL> select alphabet_string (); callret VARCHAR NOT NULL _______________________________________________________________________________ ABCDEFGHIJKLMNOPQRSTUVWXYZ 1 Rows. -- 4 msec. </pre> </div> </div> <a name="ex_aset_2" /> <div class="example"> <div class="exampletitle">Reverse a string using aset</div> <p>Note that str is modified by aset.</p> <div> <pre class="screen"> SQL> create procedure revstr (in str varchar) { declare len, inx1, inx2, tmp integer; if (str is null) return (str); len := length (str); if (len < 2) return (str); -- No need for further processing inx1 := 0; -- Index from the left. inx2 := len - 1; -- Index from the right. len := len / 2; -- Upper limit for inx1. while (inx1 < len) { tmp := aref (str, inx1); aset (str, inx1, aref (str, inx2)); aset (str, inx2, tmp); inx1 := inx1 + 1; inx2 := inx2 - 1; } return (str); } ; Done. -- 7 msec. SQL> select revstr ('repaid'), revstr ('Alli, tapa pulu papatilla!'); callret callret VARCHAR VARCHAR _______________________________________________________________________________ diaper !allitapap ulup apat ,illA 1 Rows. -- 11 msec. </pre> </div> </div> </div> <div class="refsect1"> <div class="refsect1title">See Also</div> <p> <a href="fn_aref.html">aref()</a>, <a href="fn_vector.html">vector()</a>, <a href="fn_make_string.html">make_string()</a> </p> </div> </div> <div id="footer"> <div>Copyright© 1999 - 2009 OpenLink Software All rights reserved.</div> <div id="validation"> <a href="http://validator.w3.org/check/referer"> <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /> </a> <a href="http://jigsaw.w3.org/css-validator/"> <img src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!" height="31" width="88" /> </a> </div> </div> </body> </html>