Di Oracle, RPAD()
fungsi memungkinkan Anda untuk mengisi bagian kanan 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:
RPAD(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 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 RPAD('Cat', 25)
FROM DUAL;
Hasil:
RPAD('CAT',25) ____________________________ Cat
Tidak mudah untuk melihat efek dari contoh ini, karena kami mengisi string dengan karakter default (spasi), tetapi itu memiliki efek mendorong keluar lebar kolom.
Di bawah ini adalah contoh lain yang menunjukkan efek yang lebih baik:
SELECT RPAD('Cat', 15) || 'House'
FROM DUAL;
Hasil:
RPAD('CAT',15)||'HOUSE' __________________________ Cat House
Menggabungkan dua string mengungkapkan jumlah padding yang diterapkan ke bagian kanan string paling kiri.
Perhatikan bahwa angka yang diberikan adalah lebar total dari string yang dihasilkan – bukan jumlah bantalan.
Tentukan Karakter
Dalam contoh ini saya menentukan karakter yang akan digunakan untuk padding:
SELECT RPAD('Cat', 7, '!')
FROM DUAL;
Hasil:
RPAD('CAT',7,'!') ____________________ 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 RPAD('Cat', 2)
FROM DUAL;
Hasil:
RPAD('CAT',2) ________________ Ca
Contoh Basis Data
Berikut ini contoh padding bagian kanan nilai dalam kolom database:
SELECT
country_name,
RPAD(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
RPAD(null, 3),
RPAD('Cat', null),
RPAD('Cat', 3, null)
FROM DUAL;
Hasil:
RPAD(NULL,3) RPAD('CAT',NULL) RPAD('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 RPAD()
tanpa memberikan argumen apa pun mengembalikan kesalahan:
SELECT RPAD()
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT RPAD() 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 RPAD('Cat', 1, '>', 2)
FROM DUAL;
Hasil:
Error starting at line : 1 in command - SELECT RPAD('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: