Server IP : 103.119.228.120 / Your IP : 18.118.137.96 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/doc/postgresql-9.2.24/html/ |
Upload File : |
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >Binary String Functions and Operators</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REV="MADE" HREF="mailto:pgsql-docs@postgresql.org"><LINK REL="HOME" TITLE="PostgreSQL 9.2.24 Documentation" HREF="index.html"><LINK REL="UP" TITLE="Functions and Operators" HREF="functions.html"><LINK REL="PREVIOUS" TITLE="String Functions and Operators" HREF="functions-string.html"><LINK REL="NEXT" TITLE="Bit String Functions and Operators" HREF="functions-bitstring.html"><LINK REL="STYLESHEET" TYPE="text/css" HREF="stylesheet.css"><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><META NAME="creation" CONTENT="2017-11-06T22:43:11"></HEAD ><BODY CLASS="SECT1" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="5" ALIGN="center" VALIGN="bottom" ><A HREF="index.html" >PostgreSQL 9.2.24 Documentation</A ></TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A TITLE="String Functions and Operators" HREF="functions-string.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="10%" ALIGN="left" VALIGN="top" ><A HREF="functions.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="60%" ALIGN="center" VALIGN="bottom" >Chapter 9. Functions and Operators</TD ><TD WIDTH="20%" ALIGN="right" VALIGN="top" ><A TITLE="Bit String Functions and Operators" HREF="functions-bitstring.html" ACCESSKEY="N" >Next</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><DIV CLASS="SECT1" ><H1 CLASS="SECT1" ><A NAME="FUNCTIONS-BINARYSTRING" >9.5. Binary String Functions and Operators</A ></H1 ><P > This section describes functions and operators for examining and manipulating values of type <TT CLASS="TYPE" >bytea</TT >. </P ><P > <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > defines some string functions that use key words, rather than commas, to separate arguments. Details are in <A HREF="functions-binarystring.html#FUNCTIONS-BINARYSTRING-SQL" >Table 9-9</A >. <SPAN CLASS="PRODUCTNAME" >PostgreSQL</SPAN > also provides versions of these functions that use the regular function invocation syntax (see <A HREF="functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER" >Table 9-10</A >). </P ><DIV CLASS="NOTE" ><BLOCKQUOTE CLASS="NOTE" ><P ><B >Note: </B > The sample results shown on this page assume that the server parameter <A HREF="runtime-config-client.html#GUC-BYTEA-OUTPUT" ><TT CLASS="VARNAME" >bytea_output</TT ></A > is set to <TT CLASS="LITERAL" >escape</TT > (the traditional PostgreSQL format). </P ></BLOCKQUOTE ></DIV ><DIV CLASS="TABLE" ><A NAME="FUNCTIONS-BINARYSTRING-SQL" ></A ><P ><B >Table 9-9. <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM > Binary String Functions and Operators</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><COL><COL><THEAD ><TR ><TH >Function</TH ><TH >Return Type</TH ><TH >Description</TH ><TH >Example</TH ><TH >Result</TH ></TR ></THEAD ><TBODY ><TR ><TD ><TT CLASS="LITERAL" ><TT CLASS="PARAMETER" >string</TT > <TT CLASS="LITERAL" >||</TT > <TT CLASS="PARAMETER" >string</TT ></TT ></TD ><TD > <TT CLASS="TYPE" >bytea</TT > </TD ><TD > String concatenation </TD ><TD ><TT CLASS="LITERAL" >E'\\\\Post'::bytea || E'\\047gres\\000'::bytea</TT ></TD ><TD ><TT CLASS="LITERAL" >\\Post'gres\000</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >octet_length(<TT CLASS="PARAMETER" >string</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >int</TT ></TD ><TD >Number of bytes in binary string</TD ><TD ><TT CLASS="LITERAL" >octet_length(E'jo\\000se'::bytea)</TT ></TD ><TD ><TT CLASS="LITERAL" >5</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >overlay(<TT CLASS="PARAMETER" >string</TT > placing <TT CLASS="PARAMETER" >string</TT > from <TT CLASS="TYPE" >int</TT > [<SPAN CLASS="OPTIONAL" >for <TT CLASS="TYPE" >int</TT ></SPAN >])</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Replace substring </TD ><TD ><TT CLASS="LITERAL" >overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3)</TT ></TD ><TD ><TT CLASS="LITERAL" >T\\002\\003mas</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >position(<TT CLASS="PARAMETER" >substring</TT > in <TT CLASS="PARAMETER" >string</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >int</TT ></TD ><TD >Location of specified substring</TD ><TD ><TT CLASS="LITERAL" >position(E'\\000om'::bytea in E'Th\\000omas'::bytea)</TT ></TD ><TD ><TT CLASS="LITERAL" >3</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >substring(<TT CLASS="PARAMETER" >string</TT > [<SPAN CLASS="OPTIONAL" >from <TT CLASS="TYPE" >int</TT ></SPAN >] [<SPAN CLASS="OPTIONAL" >for <TT CLASS="TYPE" >int</TT ></SPAN >])</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Extract substring </TD ><TD ><TT CLASS="LITERAL" >substring(E'Th\\000omas'::bytea from 2 for 3)</TT ></TD ><TD ><TT CLASS="LITERAL" >h\000o</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >trim([<SPAN CLASS="OPTIONAL" >both</SPAN >] <TT CLASS="PARAMETER" >bytes</TT > from <TT CLASS="PARAMETER" >string</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Remove the longest string containing only bytes appearing in <TT CLASS="PARAMETER" >bytes</TT > from the start and end of <TT CLASS="PARAMETER" >string</TT > </TD ><TD ><TT CLASS="LITERAL" >trim(E'\\000\\001'::bytea from E'\\000Tom\\001'::bytea)</TT ></TD ><TD ><TT CLASS="LITERAL" >Tom</TT ></TD ></TR ></TBODY ></TABLE ></DIV ><P > Additional binary string manipulation functions are available and are listed in <A HREF="functions-binarystring.html#FUNCTIONS-BINARYSTRING-OTHER" >Table 9-10</A >. Some of them are used internally to implement the <ACRONYM CLASS="ACRONYM" >SQL</ACRONYM >-standard string functions listed in <A HREF="functions-binarystring.html#FUNCTIONS-BINARYSTRING-SQL" >Table 9-9</A >. </P ><DIV CLASS="TABLE" ><A NAME="FUNCTIONS-BINARYSTRING-OTHER" ></A ><P ><B >Table 9-10. Other Binary String Functions</B ></P ><TABLE BORDER="1" CLASS="CALSTABLE" ><COL><COL><COL><COL><COL><THEAD ><TR ><TH >Function</TH ><TH >Return Type</TH ><TH >Description</TH ><TH >Example</TH ><TH >Result</TH ></TR ></THEAD ><TBODY ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >btrim(<TT CLASS="PARAMETER" >string</TT > <TT CLASS="TYPE" >bytea</TT >, <TT CLASS="PARAMETER" >bytes</TT > <TT CLASS="TYPE" >bytea</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Remove the longest string containing only bytes appearing in <TT CLASS="PARAMETER" >bytes</TT > from the start and end of <TT CLASS="PARAMETER" >string</TT > </TD ><TD ><TT CLASS="LITERAL" >btrim(E'\\000trim\\001'::bytea, E'\\000\\001'::bytea)</TT ></TD ><TD ><TT CLASS="LITERAL" >trim</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >decode(<TT CLASS="PARAMETER" >string</TT > <TT CLASS="TYPE" >text</TT >, <TT CLASS="PARAMETER" >format</TT > <TT CLASS="TYPE" >text</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Decode binary data from textual representation in <TT CLASS="PARAMETER" >string</TT >. Options for <TT CLASS="PARAMETER" >format</TT > are same as in <CODE CLASS="FUNCTION" >encode</CODE >. </TD ><TD ><TT CLASS="LITERAL" >decode(E'123\\000456', 'escape')</TT ></TD ><TD ><TT CLASS="LITERAL" >123\000456</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >encode(<TT CLASS="PARAMETER" >data</TT > <TT CLASS="TYPE" >bytea</TT >, <TT CLASS="PARAMETER" >format</TT > <TT CLASS="TYPE" >text</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >text</TT ></TD ><TD > Encode binary data into a textual representation. Supported formats are: <TT CLASS="LITERAL" >base64</TT >, <TT CLASS="LITERAL" >hex</TT >, <TT CLASS="LITERAL" >escape</TT >. <TT CLASS="LITERAL" >escape</TT > converts zero bytes and high-bit-set bytes to octal sequences (<TT CLASS="LITERAL" >\</TT ><TT CLASS="REPLACEABLE" ><I >nnn</I ></TT >) and doubles backslashes. </TD ><TD ><TT CLASS="LITERAL" >encode(E'123\\000456'::bytea, 'escape')</TT ></TD ><TD ><TT CLASS="LITERAL" >123\000456</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >get_bit(<TT CLASS="PARAMETER" >string</TT >, <TT CLASS="PARAMETER" >offset</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >int</TT ></TD ><TD > Extract bit from string </TD ><TD ><TT CLASS="LITERAL" >get_bit(E'Th\\000omas'::bytea, 45)</TT ></TD ><TD ><TT CLASS="LITERAL" >1</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >get_byte(<TT CLASS="PARAMETER" >string</TT >, <TT CLASS="PARAMETER" >offset</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >int</TT ></TD ><TD > Extract byte from string </TD ><TD ><TT CLASS="LITERAL" >get_byte(E'Th\\000omas'::bytea, 4)</TT ></TD ><TD ><TT CLASS="LITERAL" >109</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >length(<TT CLASS="PARAMETER" >string</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >int</TT ></TD ><TD > Length of binary string </TD ><TD ><TT CLASS="LITERAL" >length(E'jo\\000se'::bytea)</TT ></TD ><TD ><TT CLASS="LITERAL" >5</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >md5(<TT CLASS="PARAMETER" >string</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >text</TT ></TD ><TD > Calculates the MD5 hash of <TT CLASS="PARAMETER" >string</TT >, returning the result in hexadecimal </TD ><TD ><TT CLASS="LITERAL" >md5(E'Th\\000omas'::bytea)</TT ></TD ><TD ><TT CLASS="LITERAL" >8ab2d3c9689aaf18 b4958c334c82d8b1</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >set_bit(<TT CLASS="PARAMETER" >string</TT >, <TT CLASS="PARAMETER" >offset</TT >, <TT CLASS="PARAMETER" >newvalue</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Set bit in string </TD ><TD ><TT CLASS="LITERAL" >set_bit(E'Th\\000omas'::bytea, 45, 0)</TT ></TD ><TD ><TT CLASS="LITERAL" >Th\000omAs</TT ></TD ></TR ><TR ><TD > <TT CLASS="LITERAL" ><CODE CLASS="FUNCTION" >set_byte(<TT CLASS="PARAMETER" >string</TT >, <TT CLASS="PARAMETER" >offset</TT >, <TT CLASS="PARAMETER" >newvalue</TT >)</CODE ></TT > </TD ><TD ><TT CLASS="TYPE" >bytea</TT ></TD ><TD > Set byte in string </TD ><TD ><TT CLASS="LITERAL" >set_byte(E'Th\\000omas'::bytea, 4, 64)</TT ></TD ><TD ><TT CLASS="LITERAL" >Th\000o@as</TT ></TD ></TR ></TBODY ></TABLE ></DIV ><P > <CODE CLASS="FUNCTION" >get_byte</CODE > and <CODE CLASS="FUNCTION" >set_byte</CODE > number the first byte of a binary string as byte 0. <CODE CLASS="FUNCTION" >get_bit</CODE > and <CODE CLASS="FUNCTION" >set_bit</CODE > number bits from the right within each byte; for example bit 0 is the least significant bit of the first byte, and bit 15 is the most significant bit of the second byte. </P ><P > See also the aggregate function <CODE CLASS="FUNCTION" >string_agg</CODE > in <A HREF="functions-aggregate.html" >Section 9.20</A >. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="functions-string.html" ACCESSKEY="P" >Prev</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="functions-bitstring.html" ACCESSKEY="N" >Next</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >String Functions and Operators</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="functions.html" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >Bit String Functions and Operators</TD ></TR ></TABLE ></DIV ></BODY ></HTML >