Di Oracle, LPAD()
fungsi memungkinkan Anda untuk mengisi bagian kiri string dengan karakter tertentu, ke sejumlah karakter tertentu.
Cara kerjanya adalah, Anda menentukan berapa panjang string yang dihasilkan. Jika string asli lebih pendek, karakter pengisi akan mengisi ruang yang tersisa.
Sintaks
Sintaksnya seperti ini:
LPAD(expr1, n [, expr2 ])
Dimana:
expr1
danexpr2
dapat berupa salah satu tipe dataCHAR
,VARCHAR2
,NCHAR
,NVARCHAR2
,CLOB
, atauNCLOB
.n
adalahNUMBER
integer atau nilai yang dapat dikonversi secara implisit menjadiNUMBER
bilangan bulat.
Fungsi mengembalikan expr1
, diisi kiri dengan panjang n
karakter dengan urutan karakter dalam expr2
.
Jika expr2
dihilangkan, karakter pengisi adalah satu kosong.
Contoh
Berikut adalah contoh sederhana untuk ditunjukkan:
SELECT LPAD('Cat', 5)
FROM DUAL;
Hasil:
LPAD('CAT',5) ________________ Cat
Perhatikan bahwa angka yang diberikan adalah lebar total dari string yang dihasilkan – bukan jumlah bantalan.
Ini dia lagi jika dibandingkan dengan string asli (non-empuk):
SELECT LPAD('Cat', 5)
FROM DUAL
UNION ALL
SELECT 'Cat'
FROM DUAL;
Hasil:
LPAD('CAT',5) ________________ Cat Cat
Tentukan Karakter
Dalam contoh ini saya menentukan karakter yang akan digunakan untuk padding:
SELECT LPAD('Cat', 5, '>')
FROM DUAL;
Hasil:
LPAD('CAT',5,'>') ____________________ >>Cat
Padding Lebih Kecil dari String Asli
Jika argumen kedua kurang dari string asli, maka tidak ada padding yang ditambahkan, dan string asli dipersingkat menjadi jumlah karakter yang ditentukan:
SELECT LPAD('Cat', 2)
FROM DUAL;
Hasil:
LPAD('CAT',2) ________________ Ca
Contoh Basis Data
Berikut adalah contoh mengisi bagian kiri nilai dalam kolom database:
SELECT
country_name,
LPAD(country_name, 12, '.') AS Padded
FROM countries
FETCH FIRST 5 ROWS ONLY;
Hasil:
COUNTRY_NAME PADDED _______________ _______________ Argentina ...Argentina Australia ...Australia Belgium .....Belgium Brazil ......Brazil Canada ......Canada
Nilai Null
Jika salah satu argumennya null
hasilnya null
:
SET NULL 'null';
SELECT
LPAD(null, 3),
LPAD('Cat', null),
LPAD('Cat', 3, null)
FROM DUAL;
Hasil:
LPAD(NULL,3) LPAD('CAT',NULL) LPAD('CAT',3,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 LPAD()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT LPAD()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LPAD() FROM DUAL Error at Command Line : 1 Column : 8 Error report - SQL Error: ORA-00938: not enough arguments for function 00938. 00000 - "not enough arguments for function" *Cause: *Action:
Dan meneruskan jumlah argumen yang salah menghasilkan kesalahan:
SELECT LPAD('Cat', 1, '>', 2)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT LPAD('Cat', 1, '>', 2) FROM DUAL Error at Command Line : 1 Column : 28 Error report - SQL Error: ORA-00939: too many arguments for function 00939. 00000 - "too many arguments for function" *Cause: *Action: