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:

    diouxXeEfgcs - as in the C language printf

    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.

    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.

    U - as @s@ but escapes the string value as an HTTP URL (same as http_url() BIF). Useful for making
      dynamic VSP content

    V - as @s@ but escapes the string value as an HTTP Value (same as http_value). Useful for making
      dynamic VSP content

    Note that the sprintf format length and precision modifiers do not apply to the extension format characters
