Di Oracle, LENGTH() fungsi mengembalikan panjang argumennya.
LENGTH() juga dapat dianggap sebagai sekelompok fungsi. Ada lima fungsi terpisah; LENGTH() , LENGTHB() , LENGTHC() , LENGTH2() , dan LENGTH4() . Setiap fungsi menghitung panjang dengan cara yang berbeda.
Sintaks
Sintaksnya seperti ini:
{ LENGTH
| LENGTHB
| LENGTHC
| LENGTH2
| LENGTH4
}
(char) Fungsi menghitung panjang sebagai berikut:
| Fungsi | Menghitung panjang menggunakan… |
|---|---|
LENGTH() | Karakter seperti yang didefinisikan oleh set karakter input, dengan karakter pertama dari string memiliki posisi 1. |
LENGTHB() | Byte |
LENGTHC() | Unicode karakter lengkap |
LENGTH2() | poin kode UCS2 |
LENGTH4() | Poin kode UCS4 |
Tipe argumennya bisa sebagai berikut:
- Saat menggunakan
LENGTH()danLENGTHB()sintaks, argumen dapat berupa salah satu tipe dataCHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB, atauNCLOB. - Saat menggunakan
LENGTHC(),LENGTH2()danLENGTH4()sintaks, argumen dapat berupa salah satu tipe dataCHAR,VARCHAR2,NCHAR,NVARCHAR2(tapi tidakCLOBatauNCLOB).
Contoh
Berikut ini contoh dasarnya:
SELECT LENGTH('Big fat cat')
FROM DUAL; Hasil:
11
Dibandingkan dengan LENGTHB()
Contoh ini menunjukkan bagaimana hasilnya bisa berbeda, tergantung pada fungsi spesifik yang Anda gunakan, dan rangkaian karakter yang terlibat.
Dalam hal ini, kami membandingkan LENGTH() dengan LENGTHB() :
SELECT
LENGTH('Böyük yağlı pişik') AS LENGTH,
LENGTHB('Böyük yağlı pişik') AS LENGTHB
FROM DUAL; Hasil:
LENGTH LENGTHB
_________ __________
17 22 Kita dapat melihat bahwa kedua fungsi mengembalikan dua hasil yang berbeda. Ini karena beberapa karakter dalam string ini menggunakan dua byte.
LENGTH() fungsi mengembalikan panjang karakter seperti yang didefinisikan oleh set karakter input, sedangkan LENGTHB() fungsi mengembalikan panjang dalam byte .
Jika kita kembali ke string asli, hasilnya sama antara kedua fungsi:
SELECT
LENGTH('Big fat cat') AS LENGTH,
LENGTHB('Big fat cat') AS LENGTHB
FROM DUAL; Hasil:
LENGTH LENGTHB
_________ __________
11 11 String ini hanya menggunakan satu byte per karakter, sehingga panjangnya dalam byte sama dengan jumlah karakter.
Argumen Null
Jika argumennya null , hasilnya null :
SET NULL 'null';
SELECT
LENGTH(null) AS LENGTH,
LENGTHB(null) AS LENGTHB,
LENGTHC(null) AS LENGTHC,
LENGTH2(null) AS LENGTH2,
LENGTH4(null) AS LENGTH4
FROM DUAL; Hasil:
LENGTH LENGTHB LENGTHC LENGTH2 LENGTH4
_________ __________ __________ __________ __________
null null null null null
Secara default, SQLcl dan SQL*Plus mengembalikan ruang kosong setiap kali null terjadi sebagai akibat dari SQL SELECT penyataan.
Namun, Anda dapat menggunakan SET NULL untuk menentukan string berbeda yang akan dikembalikan. Di sini saya menetapkan bahwa string null harus dikembalikan.
Jumlah Argumen Salah
Memanggil fungsi tanpa meneruskan argumen apa pun menghasilkan kesalahan:
SELECT LENGTH()
FROM DUAL; Hasil:
Error starting at line : 1 in command - SELECT LENGTH() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00909: invalid number of arguments 00909. 00000 - "invalid number of arguments" *Cause: *Action:
Dan meneruskan terlalu banyak argumen juga menghasilkan kesalahan:
SELECT LENGTH('Big fat cat', 'oops')
FROM DUAL; Hasil:
Error starting at line : 1 in command -
SELECT LENGTH('Big fat cat', 'oops')
FROM DUAL
Error at Command Line : 1 Column : 8
Error report -
SQL Error: ORA-00909: invalid number of arguments
00909. 00000 - "invalid number of arguments"
*Cause:
*Action: