Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

RPAD() Fungsi di Oracle

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 dan expr2 dapat berupa salah satu tipe data CHAR , VARCHAR2 , NCHAR , NVARCHAR2 , CLOB , atau NCLOB .
  • n adalah NUMBER integer atau nilai yang dapat dikonversi secara implisit menjadi NUMBER 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:

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tutorial Oracle sql:Pernyataan Sql Dasar

  2. Cara menyisipkan string yang berisi &

  3. Lewati dan kembalikan objek array khusus di ibatis dan Oracle di java

  4. Oracle menghapus baris dari beberapa tabel

  5. Kunci dan indeks utama dalam bahasa kueri Hive mungkin atau tidak?