این تابع طول یک رشته را بر میگرداند. به مثال زیر توجه نمایید.
SELECT NAME, LENGTH(NAME) FROM PERSON;
در دستور فوق بوسیلهی تابع LENGTH، طول دادههای فیلد NAME از جدول PERSON را به دست میآوریم. پاسخ را در زیر مشاهده میکنید.
NAME LENGTH(NAME)
-------- -------------
MOHAMMAD 8
MAHDI 5
MOHSEN 6
FARZAD 6
EHSAN 5
نکته: توجه داشته باشید در مثال قبل فیلد NAME جدول PERSON از نوع VARCHAR2 میباشد. حال اگر نوع فیلد ما، از نوع NCHAR باشد، نتیجه چگونه خواهد بود. برای این مثال از جدول NUMBERS استفاده مینماییم.
به مثال زیر توجه نمایید. در این مثال میخواهیم، طول دادههای فیلد NAME از جدول NUMBERS را بدست آوریم.
SELECT NAME, LENGTH(NAME) FROM NUMBERS;
همانگونه که در پاسخ کوئری زیر مشاهده میکنید، مقداری که تابع LENGTH برگرداندهاست، برابر 10 میباشد.
NAME LENGTH(NAME)
--------- ------------
MOHAMMAD 10
MAHDI 10
MOHSEN 10
FARZAD 10
EHSAN 10
فکر میکنید علت چیست؟ درست حدس زدید. همانطور که در قبل به آن اشاره کردم، فیلد NAME جدول NUMBERS از نوع NCHAR میباشد. برای رفع این مشکل از دستور TRIM کمک میگیریم. به دستور زیر توجه کنید.
SELECT NAME, LENGTH(TRIM(NAME)) FROM NUMBERS;
توجه داشته باشید تابع LENGTH، کاراکترهای خاص و SPACEها را نیز، محسوب میکند. در دستور فوق نحوهی بکار گیری TRIM در تابع LENGTH را مشاهده نمودید. حال نتیجهی کوئری را ببینید.
NAME LENGTH(TRIM(NAME))
--------- -------------
MOHAMMAD 8
MAHDI 5
MOHSEN 6
FARZAD 6
EHSAN 5
نکته: توجه داشته باشید این تابع، طول دادههای فیلدهایی از نوع NUMBER را نیز برمی گرداند. به مثال زیر توجه کنید.
SELECT NUM_1, LENGTH(NUM_1) FROM NUMBERS;
در پاسخ کوئری زیر، طول دادههای فیلد NUM_1 را مشاهده مینمایید.
NUM_1 LENGTH(NUM_1)
------ ---------------
15 2
5 1
51 2
46 2
28 2
37 2