Updated on 2024-08-20 GMT+08:00

Binary String Functions and Operators

String Operators

SQL defines some string functions that use keywords, rather than commas, to separate arguments.

  • octet_length(string)

    Description: Specifies the number of bytes in a binary string.

    Return type: int

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT octet_length(E'jo\\000se'::bytea) AS RESULT;
     result
    --------
          5
    (1 row)
    
  • overlay(string placing string from int [for int])

    Description: Replaces substrings.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT overlay(E'Th\\000omas'::bytea placing E'\\002\\003'::bytea from 2 for 3) AS RESULT;
         result     
    ----------------
     \x5402036d6173
    (1 row)
    
  • position(substring in string)

    Description: Specifies the position of a specified substring.

    Return type: int

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT position(E'\\000om'::bytea in E'Th\\000omas'::bytea) AS RESULT;
     result
    --------
          3
    (1 row)
    
  • substring(string [from int] [for int])

    Description: Truncates a substring.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT substring(E'Th\\000omas'::bytea from 2 for 3) AS RESULT; 
      result  
    ----------
     \x68006f
    (1 row)
    
  • substr(string, from int [, for int])

    Description: Truncates a substring.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# select substr(E'Th\\000omas'::bytea,2, 3) as result;
      result
    ----------
     \x68006f
    (1 row)
    
  • trim([both] bytes from string)

    Description: Removes the longest string containing only bytes from the start and end of string.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT trim(E'\\000'::bytea from E'\\000Tom\\000'::bytea) AS RESULT;
      result  
    ----------
     \x546f6d
    (1 row)
    

Other Binary String Functions

GaussDB provides common syntax used for calling functions.

  • btrim(string bytea,bytes bytea)

    Description: Removes the longest string containing only bytes from the start and end of string.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT btrim(E'\\000trim\\000'::bytea, E'\\000'::bytea) AS RESULT;
       result   
    ------------
     \x7472696d
    (1 row)
    
  • get_bit(string, offset)

    Description: Extracts bits from a string.

    Return type: int

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT get_bit(E'Th\\000omas'::bytea, 45) AS RESULT; 
     result
    --------
          1
    (1 row)
    
  • get_byte(string, offset)

    Description: Extracts bytes from a string.

    Return type: int

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT get_byte(E'Th\\000omas'::bytea, 4) AS RESULT; 
     result
    --------
        109
    (1 row)
    
  • set_bit(string,offset, newvalue)

    Description: Sets bits in a string.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT set_bit(E'Th\\000omas'::bytea, 45, 0) AS RESULT; 
          result      
    ------------------
     \x5468006f6d4173
    (1 row)
    
  • set_byte(string,offset, newvalue)

    Description: Sets bytes in a string.

    Return type: bytea

    Example:

    1
    2
    3
    4
    5
    gaussdb=# SELECT set_byte(E'Th\\000omas'::bytea, 4, 64) AS RESULT; 
          result      
    ------------------
     \x5468006f406173
    (1 row)
    
  • rawcmp(raw, raw)

    Description: Specifies the raw data type comparison function.

    Parameters: raw, raw.

    Return type: integer

  • raweq(raw, raw)

    Description: Specifies the raw data type comparison function.

    Parameters: raw, raw.

    Return type: Boolean

  • rawge(raw, raw)

    Description: Specifies the raw data type comparison function.

    Parameters: raw, raw.

    Return type: Boolean

  • rawgt(raw, raw)

    Description: Specifies the raw data type comparison function.

    Parameters: raw, raw.

    Return type: Boolean

  • rawin(cstring)

    Description: Specifies the raw data type parsing function.

    Parameter: cstring.

    Return type: bytea

  • rawle(raw, raw)

    Description: Specifies the raw data type parsing function.

    Parameters: raw, raw.

    Return type: Boolean

  • rawlike(raw, raw)

    Description: Specifies the raw data type parsing function.

    Parameters: raw, raw.

    Return type: Boolean

  • rawlt(raw, raw)

    Description: Specifies the raw data type parsing function.

    Parameters: raw, raw.

    Return type: Boolean

  • rawne(raw, raw)

    Description: Compares whether the raw types are the same.

    Parameters: raw, raw.

    Return type: Boolean

  • rawnlike(raw, raw)

    Description: Checks whether the raw type matches the pattern.

    Parameters: raw, raw.

    Return type: Boolean

  • rawout(bytea)

    Description: Specifies the RAW output API.

    Parameter: bytea

    Return type: cstring

  • rawsend(raw)

    Description: Converts the bytea type to the binary type.

    Parameter: raw

    Return type: bytea

  • rawtohex(text)

    Description: Converts the raw format to the hexadecimal format.

    Parameter: text

    Return type: text