rpad
<< round, i64round | FB 2.5 Language Reference | rtrim >>
<< round, i64round | FB 2.1 Language Reference | rtrim >>
rpad
Library: ib_udf
Added in: 1.5
Changed in: 1.5.2, 2.0
Better alternative: Internal function RPAD()
Description
Returns the input string right-padded with padchars until endlength is reached.
Result type: VARCHAR(n)
Syntax
rpad (str, endlength, padchar)
Declaration
DECLARE EXTERNAL FUNCTION rpad CSTRING(255) NULL, INTEGER, CSTRING(1) NULL RETURNS CSTRING(255) FREE_IT ENTRY_POINT 'IB_UDF_rpad' MODULE_NAME 'ib_udf'
The above declaration is from the file ib_udf2.sql. The NULLs after the CSTRING arguments are an optional addition that became available in Firebird 2. If an argument is declared with the NULL keyword, the engine will pass a NULL argument value unchanged to the function. This leads to a NULL result, which is correct. Without the NULL keyword (your only option in pre-2.0 versions), NULLs are passed to the function as empty strings and the result is a string with endlength padchars (if str is NULL) or a copy of str itself (if padchar is NULL).
For more information about passing NULLs to UDFs, see the note at the end of this book.
Notes:
- Depending on how you declare it (see
CSTRINGnote), this function can accept and return strings of up to 32767 characters. - When calling this function, make sure
endlengthdoes not exceed the declared result length. - If
endlengthis less thanstr's length,stris truncated toendlength. Ifendlengthis negative, the result isNULL. - A
NULLendlengthis treated as if it were 0. - If
padcharis empty, or ifpadcharisNULLand the function has been declared without theNULLkeyword after the last argument,stris returned unchanged (or truncated toendlength). - Before Firebird 2.0, the result type was
CHAR(n). - A bug that caused an endless loop if
padcharwas empty orNULLhas been fixed in 2.0. - In Firebird 1.5.1 and below, the default declaration used
CSTRING(80)instead ofCSTRING(255).
See also:
lpad
back to top of page
<< round, i64round | FB 2.5 Language Reference | rtrim >>
<< round, i64round | FB 2.1 Language Reference | rtrim >>







