<!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: string_output - Virtuoso Functions Guide" /> <meta name="dc.subject" content="Function: string_output - 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: string_output - 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_string_output" /> <img src="../images/misc/logo.jpg" alt="" /> <h1>22. Virtuoso Functions Guide - string_output</h1> </div> <div id="navbartop"> <div> <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_strchr.html" title="strchr">Prev</a> | <a class="link" href="fn_string_output_flush.html" title="string_output_flush">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 href="functions.html#array">Array Manipulation</a> </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 class="selected" href="functions.html#string">String</a> </div> <div class="selected"> <div> <a href="fn_ascii.html">ascii</a> </div> <div> <a href="fn_blob_to_string.html">blob_to_string</a> </div> <div> <a href="fn_blob_to_string_output.html">blob_to_string_outpu...</a> </div> <div> <a href="fn_chr.html">chr</a> </div> <div> <a href="fn_ends_with.html">ends_with</a> </div> <div> <a href="fn_initcap.html">initcap</a> </div> <div> <a href="fn_isblob.html">isblob</a> </div> <div> <a href="fn_isstring.html">isstring</a> </div> <div> <a href="fn_lcase.html">lcase</a> </div> <div> <a href="fn_left.html">left</a> </div> <div> <a href="fn_length.html">length</a> </div> <div> <a href="fn_locate.html">locate</a> </div> <div> <a href="fn_ltrim.html">ltrim</a> </div> <div> <a href="fn_make_string.html">make_string</a> </div> <div> <a href="fn_regexp_instr.html">regexp_instr</a> </div> <div> <a href="fn_regexp_like.html">regexp_like</a> </div> <div> <a href="fn_regexp_match.html">regexp_match</a> </div> <div> <a href="fn_regexp_parse.html">regexp_parse</a> </div> <div> <a href="fn_regexp_replace.html">regexp_replace</a> </div> <div> <a href="fn_regexp_substr.html">regexp_substr</a> </div> <div> <a href="fn_repeat.html">repeat</a> </div> <div> <a href="fn_replace.html">replace</a> </div> <div> <a href="fn_right.html">right</a> </div> <div> <a href="fn_rtrim.html">rtrim</a> </div> <div> <a href="fn_search_excerpt.html">search_excerpt</a> </div> <div> <a href="fn_serialize.html">serialize</a> </div> <div> <a href="fn_space.html">space</a> </div> <div> <a href="fn_split_and_decode.html">split_and_decode</a> </div> <div> <a href="fn_sprintf.html">sprintf</a> </div> <div> <a href="fn_sprintf_inverse.html">sprintf_inverse</a> </div> <div> <a href="fn_sprintf_iri.html">sprintf_iri</a> </div> <div> <a href="fn_sprintf_iri_or_null.html">sprintf_iri_or_null</a> </div> <div> <a href="fn_sprintf_or_null.html">sprintf_or_null</a> </div> <div> <a href="fn_starts_with.html">starts_with</a> </div> <div> <a href="fn_strcasestr.html">strcasestr</a> </div> <div> <a href="fn_strchr.html">strchr</a> </div> <div> <a href="fn_strcontains.html">strcontains</a> </div> <div> <a class="selected" href="fn_string_output.html">string_output</a> </div> <div> <a href="fn_string_output_flush.html">string_output_flush</a> </div> <div> <a href="fn_string_output_gz_compress.html">string_output_gz_com...</a> </div> <div> <a href="fn_string_output_string.html">string_output_string</a> </div> <div> <a href="fn_string_to_file.html">string_to_file</a> </div> <div> <a href="fn_strrchr.html">strrchr</a> </div> <div> <a href="fn_strstr.html">strstr</a> </div> <div> <a href="fn_subseq.html">subseq</a> </div> <div> <a href="fn_substring.html">substring</a> </div> <div> <a href="fn_tmp_file_name.html">tmp_file_name</a> </div> <div> <a href="fn_trim.html">trim</a> </div> <div> <a href="fn_ucase.html">ucase</a> </div> <div> <a href="fn_upper.html">upper</a> </div> </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>string_output</h2> <div class="refpurpose">make a string output stream</div> <div class="funcsynopsis"> <span class="funcdef"> <span class="function">string_output</span> </span> (<span class="paramdefoptional">[in <span class="optional">threshold</span> integer]</span>); </div> <div class="refsect1"> <div class="refsect1title">Description</div> <p>A string output stream is a special object that may be used to buffer arbitrarily long streams of data. They are useful for handling data that would not otherwise fit within normal <span class="computeroutput">varchar</span> size limitations. The HTTP output functions optionally take a string output stream handle as a parameter and then output to said stream instead of the HTTP client. A string output stream can be assigned to a database column in insert or update, causing the characters written to the stream to be assigned to the column as a narrow string. </p> <p>The function <a href="fn_string_output_string.html">string_output_string </a> can be used to produce a varchar out of a string output stream. It may be called repeatedly to obtain several copies of the data. <a href="fn_http_rewrite.html">http_rewrite</a> can be used to flush a string output stream.</p> <p>If a string output stream is passed to the function <a href="fn_result.html">result</a> the data stored in it is sent to the client.</p> <p>The string output object cannot be copied. It cannot therefore be assigned between two variables or passed by value (as an IN parameter.) It can be passed by reference (OUT, INOUT parameter.)</p> </div> <div class="refsect1"> <div class="refsect1title">Parameters</div> <div class="refsect2"> <span class="refsect2title">threshold – </span> Optional size threshold, exceeding this the object will be stored in a temp directory specified by 'TempSesDir' INI parameter. </div> </div> <div class="refsect1"> <div class="refsect1title">Examples</div> <a name="ex_string_output" /> <div class="example"> <div class="exampletitle">Handling string output streams</div> <p>This example takes a string as an argument, creates a new string output stream, writes the string into the stream and inserts stream contents to a DB table.</p> <div> <pre class="screen"> create table foo_table ( a integer identity, b long varchar, primary key (a)); create procedure foo_out (in x varchar) { declare str_out any; declare str varchar; -- Pass correct result metadata to client result_names (str); -- Get a new string output stream str_out := string_output(); http (x, str_out); -- These produce the same result result (string_output_string (str_out)); result (str_out); -- insert string output contents insert into foo_table (b) values (str_out); -- Write it again to the string output http (concat (' ', x), str_out); result (str_out); } ; SQL> foo_out ('Ceterum censeo, Carthaginem esse delendum!'); str VARCHAR NOT NULL _______________________________________________________________________________ Ceterum censeo, Carthaginem esse delendum! Ceterum censeo, Carthaginem esse delendum! Ceterum censeo, Carthaginem esse delendum! Ceterum censeo, Carthaginem esse delendum! 2 Rows. -- 2 msec. SQL> select * from foo_table; a b INTEGER NOT NULL LONG VARCHAR _______________________________________________________________________________ 1 Ceterum censeo, Carthaginem esse delendum! 1 Rows. -- 2 msec. </pre> </div> </div> </div> <div class="refsect1"> <div class="refsect1title">See Also</div> <p> <a href="fn_string_output_string.html"> string_output_stream</a>, <a href="fn_http.html">http</a>, <a href="fn_http_value.html">http_value</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>