<!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: sprintf - Virtuoso Functions Guide" /> <meta name="dc.subject" content="Function: sprintf - 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: sprintf - 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_sprintf" /> <img src="../images/misc/logo.jpg" alt="" /> <h1>22. Virtuoso Functions Guide - sprintf</h1> </div> <div id="navbartop"> <div> <a class="link" href="functions.html">Chapter Contents</a> | <a class="link" href="fn_split_and_decode.html" title="split_and_decode">Prev</a> | <a class="link" href="fn_sprintf_inverse.html" title="sprintf_inverse">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 class="selected" 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 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>sprintf</h2> <div class="refpurpose">returns a formatted string</div> <div class="funcsynopsis"> <span class="funcdef"> <span class="function">sprintf</span> </span> (<span class="paramdef"> <span class="parameter">format</span> string</span>, <span class="paramdef"> <span class="parameter">arg_1</span> any</span>, <span class="paramdef"> <span class="parameter">...</span> </span>, <span class="paramdef"> <span class="parameter">arg_x</span> any</span>); </div> <div class="refsect1"> <div class="refsect1title">Description</div> <p>sprintf returns a new string formed by "printing" a variable number of arguments arg_1 - arg_x according to the format string format, that is, exactly the same way as with the sprintf function of C language. However the sprintf function enforces some additional limitations over the sprintf C function. It does not allow for single value output to take more than 2000 characters. It does support the following additional format characters: </p> <p> diouxXeEfgcs - as in the C language printf </p> <p> S - as 's' but escapes the single quotes by doubling them (as per SQL/92). This is suitable for constructing dynamic SQL statements with string literals inline. </p> <div> <pre class="screen"> sprintf ('insert into testit (data) values ('%S')', 'Test ''Real'' data') -> insert into testit (data) values ('Test ''Real'' data') </pre> </div> <p> I - as 's' but escapes the string value to form a valid identifier name (will double the double quotes). This is suitable for constructing dynamic SQL statements with identifiers inline. </p> <div> <pre class="screen"> sprintf ('select * from "%I"', 'Big "Table" Name') -> select * from "Big ""Table"" Name" </pre> </div> <p> U - as 's' but escapes the string value as an HTTP URL (same as http_url() function). Useful for making dynamic VSP content </p> <div> <pre class="screen"> sprintf ('<a href="%U">', 'day & night') -> <a href="day+%26+night"> </pre> </div> <p> R - use to replace leading spaces: the modifiers are one of + - # 0 and space. </p> <div> <pre class="screen"> sprintf ('%-R', ' 123') -123 sprintf ('%-R', ' 123') --123 </pre> </div> <p> V - as 's' but escapes the string value as an HTTP Value (same as http_value). Useful for making dynamic VSP content </p> <div> <pre class="screen"> sprintf ('<INPUT name="test" value="%V">', 'day & night') -> <INPUT name="test" value="day &amp; night"> </pre> </div> <p> Note that the sprintf format length and precision modifiers do not apply to the extension format characters </p> <div> <pre class="screen">sprintf('Int=%d/%o/%x, String=%s, Character=%c', 42798,42798,42798,'la cadena',65) -> 'Int=42798/123456/a72e, String=la cadena, Character=A' </pre> </div> <p>In addition, <strong>%{varname}U</strong> syntax extension is supported, mostly for <a href="rdfviews.html#rdfconnvarsiniriclasses">uing connection variables in RDF IRI classes</a>. That syntax is to print the value of client connection variable <strong>varname</strong> using print format <strong>%U</strong>. Other format characters are not supported for that feature in current version of Virtuoso but might be supported in the future.</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>