The LENGTH() function in SQL
The semantics of the LENGTH() SQL function differs according to the database engine.
The SQL LENGTH() function must be used with care: Each database server has different semantics for this function, regarding length and trailing blanks handling.
The BDL language provides a LENGTH() built-in function, which is different from the SQL LENGTH() function, used in SQL statements. The LENGTH() function of BDL returns zero when the string expression is NULL.
Database Server Type | Function name | Counting unit | Significant trailing blanks for CHAR() columns | Return value when NULL | Related topic |
---|---|---|---|---|---|
IBM® DB2® LUW |
|
Octets | Yes | NULL | See details |
IBM Informix® |
|
Octets | No | NULL | Native SQL feature |
IBM Netezza |
|
Characters | No | NULL | See details |
Microsoft™ SQL Server |
|
Characters | No | NULL | See details |
Oracle® MySQL / MariadDB |
|
Characters | No | NULL | See details |
Oracle Database Server |
|
Characters | Yes | NULL | See details |
PostgreSQL |
|
Characters | No | NULL | See details |
SAP HANA® |
|
Characters | No | NULL | See details |
SQLite |
|
Characters | Yes | NULL | See details |
Search for LENGTH() usage in your SQL statements and review the code of the database-specific
function.
Tip:
Create a user-defined SQL function that implements the Informix SQL
LENGTH() function. For example, with Oracle
PL/SQL:
CREATE OR REPLACE FUNCTION vlength(
value IN VARCHAR2
)
RETURN INTEGER
AUTHID CURRENT_USER
IS
BEGIN
RETURN NVL(LENGTH(RTRIM(value)),0);
END;
/