Firebird 2.1 Language Reference Update
Firebird 2.1 Language Reference Update
Firebird 2.1 Language Reference Update
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Added in: 1.5<br />
Changed in: 1.5.2, 2.0<br />
Better alternative: Internal function LPAD()<br />
External functions (UDFs)<br />
Description: Returns the input string left-padded with padchars until endlength is reached.<br />
Result type: VARCHAR(n)<br />
Syntax:<br />
lpad (str, endlength, padchar)<br />
Declaration:<br />
Notes:<br />
DECLARE EXTERNAL FUNCTION lpad<br />
CSTRING(255) NULL, INTEGER, CSTRING(1) NULL<br />
RETURNS CSTRING(255) FREE_IT<br />
ENTRY_POINT 'IB_UDF_lpad' MODULE_NAME 'ib_udf'<br />
The above declaration is from the file ib_udf2.sql. The NULLs after the CSTRING arguments<br />
are an optional addition that became available in <strong>Firebird</strong> 2. If an argument is declared with the NULL<br />
keyword, the engine will pass a NULL argument value unchanged to the function. This leads to a NULL<br />
result, which is correct. Without the NULL keyword (your only option in pre-2.0 versions), NULLs<br />
are passed to the function as empty strings and the result is a string with endlengh padchars (if str<br />
is NULL) or a copy of str itself (if padchar is NULL).<br />
For more information about passing NULLs to UDFs, see the note at the end of this book.<br />
• Depending on how you declare it (see CSTRING note), this function can accept and return strings of up to<br />
32767 characters.<br />
• When calling this function, make sure endlength does not exceed the declared result length.<br />
• If endlength is less than str's length, str is truncated to endlength. If endlength is negative, the<br />
result is NULL.<br />
• A NULL endlength is treated as if it were 0.<br />
• If padchar is empty, or if padchar is NULL and the function has been declared without the NULL keyword<br />
after the last argument, str is returned unchanged (or truncated to endlength).<br />
• Before <strong>Firebird</strong> 2.0, the result type was CHAR(n).<br />
• A bug that caused an endless loop if padchar was empty or NULL has been fixed in 2.0.<br />
• In <strong>Firebird</strong> 1.5.1 and below, the default declaration used CSTRING(80) instead of CSTRING(255).<br />
Library: ib_udf<br />
ltrim<br />
180